Skip to main content
Glama

MCP Server Tauri

Give your AI assistant superpowers for Tauri development

npm version crates.io License: MIT Tauri v2

Documentation · Getting Started · Available Tools


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.

✨ Features

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.

Related MCP server: tauri-plugin-mcp

🚀 Quick Start

Prerequisites

  • Node.js 20+ and npm

  • Rust and Cargo (for Tauri development)

  • Tauri CLI: npm install -g @tauri-apps/cli@next

  • For mobile: Xcode (macOS) or Android SDK

1. Configure Your AI Assistant

Use aix to add the server to your AI assistant:

npx -y @a1st/aix add mcp tauri --command 'npx @hypothesi/tauri-mcp-server' --user

Supported clients: claude-code, cursor, windsurf, vscode, cline, roo-cline, claude, zed, goose, warp, codex

TIP

aix automatically detects your installed AI assistants and configures them.

Restart your AI assistant after adding the configuration.

CLI Usage

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.

2. Set Up the MCP Bridge Plugin

Ask your AI assistant to help configure your Tauri app:

"Help me set up the Tauri MCP Bridge plugin"

Your AI will:

  1. Examine your project to see what's already configured

  2. Show you what changes are needed (Cargo.toml, plugin registration, etc.)

  3. Ask for your permission before making any modifications

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.


💬 Slash Commands (Prompts)

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.


🧰 Available Tools (21 total)

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 windowId parameter to target specific windows. Use manage_window with action: "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


🏗️ Architecture

┌─────────────────────────────────────────────────────────────────┐
│                        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?

  • Rich AI context — Screenshots, DOM, and logs help the AI understand your app's state

  • Cross-platform — Works on Linux, Windows, macOS, Android, and iOS

  • No external drivers — No Selenium, Playwright, or browser automation needed

  • Native integration — Direct access to Tauri's IPC and backend


🧑‍💻 Development

# 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.


📚 Documentation


🤝 Contributing

Contributions are welcome! Please:

  1. Follow existing code patterns

  2. Add tests for new features

  3. Update documentation

  4. Ensure npm test and npm run standards pass


Other Notes

This project is tested with BrowserStack.

📄 License

MIT © hypothesi


Trademark Notice

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.

Available Tools

20 tools
driver_sessionA
Idempotent

[Tauri Apps Only] Start/stop automation session to connect to a RUNNING Tauri app. Supports multiple concurrent app connections - each app runs on a unique port. The most recently connected app becomes the "default" app used when no appIdentifier is specified. Use action "status" to check connection state: returns single app format when 1 app connected, or array format with "isDefault" indicator when multiple apps connected. Action "stop" without appIdentifier stops ALL sessions; with appIdentifier stops only that app. The identifier field (e.g., "com.example.myapp") uniquely identifies each app. REQUIRED before using other webview_* or ipc_* tools. Connects via WebSocket to the MCP Bridge plugin in the Tauri app. For browser automation, use Chrome DevTools MCP instead. For Electron apps, this tool will NOT work.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNoHost address to connect to (e.g., 192.168.1.100). Falls back to MCP_BRIDGE_HOST or TAURI_DEV_HOST env vars
portNoPort to connect to (default: 9223)
actionYesAction to perform: start or stop the session, or check status
appIdentifierNoApp identifier (port number or bundle ID) to stop. Only used with action "stop". If omitted, stops all sessions.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds context beyond annotations: describes status output format (single vs array with isDefault), stop behavior without appIdentifier (stops all), and connection via WebSocket. Annotations indicate idempotentHint=true, which description complements by explaining idempotent behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with front-loaded purpose, then action details, then usage notes. Slightly verbose but every sentence adds value, including alternatives. Could be trimmed without losing substance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all important aspects: required before other tools, explains status output format, mentions WebSocket connection, sets context within sibling tools. No output schema, but description adequately explains return behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All parameters have descriptions (100% coverage). Description adds value: host falls back to env vars, port defaults to 9223, appIdentifier only used with stop. Explains the identifier field uniquely identifies apps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool is for Tauri apps only, managing automation sessions with start/stop/status actions. It distinguishes itself from sibling tools by specifying it's for Tauri automation and not for browser (Chrome DevTools MCP) or Electron apps.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: required before using any webview_* or ipc_* tools. Also specifies when not to use: for browser automation or Electron apps. Provides details on concurrent connections and default app behavior.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_setup_instructionsA
Read-onlyIdempotent

Get instructions for setting up or updating the MCP Bridge plugin in a Tauri project. Call this tool when: (1) driver_session fails to connect, (2) you detect the plugin is not installed or outdated, or (3) the user asks about setup. Returns step-by-step guidance that you should follow to help the user configure their project. IMPORTANT: The instructions require you to examine the project first and ask for permission before making any changes.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and idempotentHint=true, so the tool is safe. The description adds useful context about the step-by-step guidance and the prerequisite to examine the project and ask permission, but this aligns with the annotations and doesn't reveal any unexpected behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three well-structured sentences: purpose, usage conditions, and an important note. Every sentence serves a purpose, with zero wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description clearly states what the tool returns ('step-by-step guidance') and the key behavioral requirement (examine project, ask permission). Annotations cover safety, and the sibling context shows this is a distinct setup help tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. The description appropriately avoids parameter discussion and focuses on usage context, which is sufficient given no input values are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get instructions for setting up or updating the MCP Bridge plugin in a Tauri project', providing a specific verb and resource. It distinguishes itself from sibling tools like driver_session by listing explicit scenarios (connection failure, plugin detection, user request).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly enumerates three conditions under which the tool should be called: driver_session failure, detecting outdated/missing plugin, or user asking about setup. It also notes that the returned instructions require the agent to examine the project and ask permission before changing anything.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ipc_emit_eventA

[Tauri Apps Only] Emit a Tauri event to test event handlers. Requires active driver_session. Events are Tauri-specific (not DOM events). For browser DOM events, use Chrome DevTools MCP instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadNo
eventNameYes
appIdentifierNoApp port or bundle ID to target. Defaults to the only connected app or the default app if multiple are connected.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations (readOnlyHint=false, destructiveHint=false) indicate a non-destructive write operation. The description adds context beyond annotations by stating the prerequisite of an active driver session and the Tauri-specific nature, which helps the agent understand the behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: a single sentence broken into three clear statements. It is front-loaded with the scope (Tauri Apps Only) and each sentence serves a purpose—describing the action, prerequisite, and alternative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers prerequisite (driver session), scope (Tauri), and alternative (Chrome DevTools). It does not mention return value or side effects, but for an emit tool, the return is likely trivial. It is sufficiently complete for its complexity and available metadata.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% (only appIdentifier has a description). The description does not elaborate on parameter meanings or usage, leaving the eventName and payload parameters unexplained. It relies on the schema which lacks descriptions for most parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: emitting a Tauri event for testing event handlers. It specifies Tauri-only scope and distinguishes from DOM events, aligning well with the sibling tools list which includes webview_dom_snapshot and webview_execute_js for DOM operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: 'Requires active driver_session' and 'For browser DOM events, use Chrome DevTools MCP instead.' This tells the agent when to use this tool and when to choose an alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ipc_execute_commandA

[Tauri Apps Only] Execute Tauri IPC commands (invoke Rust backend functions). Requires active driver_session. This is Tauri-specific IPC, not browser APIs. For Electron IPC or browser APIs, use appropriate tools for those frameworks.

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo
commandYes
appIdentifierNoApp port or bundle ID to target. Defaults to the only connected app or the default app if multiple are connected.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=false and destructiveHint=false, and the description adds that it invokes Rust backend functions, implying both read and write capabilities. It also notes the Tauri-specific context and the driver_session requirement, adding behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief at three sentences, each serving a distinct purpose: stating the function, mentioning the prerequisite, and clarifying the framework scope. No unnecessary words, and key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 parameters and no output schema, the description covers the essential context: what it does, prerequisite, framework specificity, and usage boundaries. It is complete enough for an AI agent to decide when to use this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33% (only appIdentifier has a description in schema). The description does not elaborate on the 'command' or 'args' parameters, missing the opportunity to explain their structure or expected format, which is needed given low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool executes Tauri IPC commands to invoke Rust backend functions, using a specific verb and resource. It distinguishes itself from sibling tools for browser APIs and Electron IPC, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the prerequisite ('Requires active driver_session') and provides clear guidance on when not to use it ('For Electron IPC or browser APIs, use appropriate tools for those frameworks'), offering explicit alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ipc_get_backend_stateA
Read-only

[Tauri Apps Only] Get Tauri backend state: app metadata, Tauri version, environment. Requires active driver_session. Use to verify you're connected to a Tauri app and get app info.

ParametersJSON Schema
NameRequiredDescriptionDefault
appIdentifierNoApp port or bundle ID to target. Defaults to the only connected app or the default app if multiple are connected.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds key behavioral context beyond annotations: requires active driver_session, Tauri-only scope. Annotations already declare readOnlyHint=true, no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first states purpose and scope, second adds prerequisite and use case. No wasted words, front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given readOnlyHint annotation and simple schema (1 optional param), description covers all needed context: purpose, prerequisite, use case. No output schema, but return value is implied as state info. Complete for this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with description. Description does not add extra parameter semantics beyond schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it gets Tauri backend state with specific items (app metadata, Tauri version, environment). Specifies 'Tauri Apps only' and distinguishes from siblings like webview tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states prerequisite 'Requires active driver_session' and use case 'verify you're connected to a Tauri app and get app info'. Could mention when not to use it, but context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ipc_get_capturedA
Read-only

[Tauri Apps Only] Get captured Tauri IPC traffic (requires ipc_monitor started). Shows captured commands (invoke calls) and events with arguments and responses. For browser network requests, use Chrome DevTools MCP instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoFilter events by command name
appIdentifierNoApp port or bundle ID to target. Defaults to the only connected app or the default app if multiple are connected.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark readOnlyHint=true, and the description adds critical context about the dependency on ipc_monitor. It also describes the captured content (arguments and responses). Though it doesn't detail error behavior, it sufficiently reveals behavioral traits beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, front-loaded with scope and prerequisite, followed by what the tool shows and a clear alternative. Every sentence earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately explains what is returned (commands, events, arguments, responses). It also notes the required monitor state. Could be slightly more complete with error handling or data structure details, but sufficient for a read-only retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear descriptions for both parameters (filter, appIdentifier). The tool description does not add additional parameter semantics beyond what the schema provides, so it meets the baseline without extra value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool is for capturing Tauri IPC traffic, specifies it requires ipc_monitor started, and explains what it shows (commands, events, arguments, responses). It also distinguishes from browser network requests, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly mentions prerequisite ('requires ipc_monitor started') and provides an alternative tool for browser network requests ('use Chrome DevTools MCP instead'), giving clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ipc_monitorA
Idempotent

[Tauri Apps Only] Monitor Tauri IPC calls between frontend and Rust backend. Requires active driver_session. Captures invoke() calls and responses. This is Tauri-specific; for browser network monitoring, use Chrome DevTools MCP.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform: start or stop IPC monitoring
appIdentifierNoApp port or bundle ID to target. Defaults to the only connected app or the default app if multiple are connected.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare idempotentHint=true and no destructive hint. The description adds that it requires an active driver_session and captures invoke() calls and responses, providing some behavioral context. It does not contradict annotations but adds limited value beyond them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loads the core purpose and platform, and includes a prerequisite and alternative. Every sentence adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has only two parameters and no output schema, the description covers scope, platform, prerequisite, and a key alternative. It is mostly complete, though it could contrast with sibling IPC tools for fuller guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters. The description does not add extra meaning or examples beyond the schema, so it meets the baseline for a covered schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool monitors Tauri IPC calls between frontend and Rust backend. It specifies the platform (Tauri) and distinguishes from browser monitoring with an explicit alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions the prerequisite of an active driver_session and provides an alternative for browser monitoring. However, it does not explicitly differentiate from other IPC-related sibling tools like ipc_emit_event or ipc_execute_command.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_devicesA
Read-only

[Tauri Mobile Apps Only] List Android emulators/devices and iOS simulators. Use for Tauri mobile development (tauri android dev, tauri ios dev). Not needed for desktop-only Tauri apps or web projects.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true. The description adds value by specifying the tool's scope (Tauri mobile apps only), but does not describe the return format or behavior beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words. Front-loads the verb and resource, then provides usage constraints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with no output schema, the description provides sufficient context: what it does and when to use it. Could mention that it returns a list, but not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has zero parameters, so schema coverage is 100%. Description doesn't need to add parameter info. The baseline is 4, and description meets that by providing context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists Android emulators/devices and iOS simulators, specifically for Tauri mobile development. This distinguishes it from sibling tools which focus on drivers, IPC, or webview operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use (Tauri mobile development) and when not to use (desktop-only or web projects). Provides clear decision criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_windowA
Idempotent

[Tauri Apps Only] Manage Tauri windows. Actions: "list" - List all windows with labels, titles, URLs, and state. "info" - Get detailed info for a window (size, position, title, focus, visibility). "resize" - Resize a window (requires width/height, uses logical pixels by default). Requires active driver_session. For browser windows, use Chrome DevTools MCP instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthNoWidth in pixels (required for "resize" action)
actionYesAction: "list" all windows, get "info" for one window, or "resize" a window
heightNoHeight in pixels (required for "resize" action)
logicalNoUse logical pixels (true, default) or physical pixels (false). Only for "resize"
windowIdNoWindow label to target (defaults to "main"). Required for "info", optional for "resize"
appIdentifierNoApp port or bundle ID to target. Defaults to the only connected app or the default app if multiple are connected.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=true), the description adds that resize uses logical pixels by default and that an active driver session is required. It also explains what each action does, providing behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph with clear enumeration of actions and prerequisites. Every sentence adds necessary information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 6 parameters and no output schema, the description covers actions, prerequisites, and pixel unit detail. It could be more complete by mentioning return values for list/info or error handling, but it is largely sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%. The description adds value by grouping parameters with actions (e.g., 'resize requires width/height') and noting defaults (windowId defaults to 'main'). This supplements the individual parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it manages Tauri windows, explicitly lists three actions (list, info, resize) with detailed explanations, and distinguishes itself from browser window management by directing to Chrome DevTools MCP.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It mentions the prerequisite 'Requires active driver_session' and explicitly tells when not to use this tool ('For browser windows, use Chrome DevTools MCP instead'). However, it could provide more granular guidance on choosing between list, info, and resize actions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_logsA
Read-only

[Tauri Apps Only] Read logs from various sources: "console" for webview JS logs, "android" for logcat, "ios" for simulator logs, "system" for desktop logs. Requires active driver_session for console logs. Use for debugging Tauri app issues at any level.

ParametersJSON Schema
NameRequiredDescriptionDefault
linesNo
sinceNoISO timestamp to filter logs since (e.g. 2023-10-27T10:00:00Z)
filterNoRegex or keyword to filter logs
sourceYesLog source: "console" for webview JS logs, "android" for logcat, "ios" for simulator, "system" for desktop
windowIdNoWindow label for console logs (defaults to "main")
appIdentifierNoApp port or bundle ID for console logs. Defaults to the only connected app or the default app if multiple are connected.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true. The description adds valuable behavioral context, especially the prerequisite of driver_session for console logs, which is beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, front-loaded with purpose and key details. Each sentence adds value; no extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, sources, and a critical prerequisite. No output schema, so return format is not described, but for a simple read tool this is acceptable. Annotations fill the safety gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is high (83%) and the description adds minimal parameter-level detail beyond what the schema provides (e.g., source enum). The prerequisite for console logs is helpful but not parameter-specific.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it reads logs from specific sources, with explicit enumeration of sources. Distinguishes itself from sibling tools (e.g., webview_execute_js, ipc_*), as no other tool focuses on log retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides context: use for debugging Tauri apps, requires active driver_session for console logs. Does not explicitly state when not to use or alternatives, but the scope is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webview_dom_snapshotA
Read-only

[Tauri Apps Only] Get a structured DOM snapshot of a Tauri app's webview. Supports different snapshot types for AI consumption. The "accessibility" type returns a YAML representation of the accessibility tree similar to Playwright's aria snapshots, including roles, names, states, and element refs. Use this for understanding UI semantics, finding interactive elements, or accessibility testing. The "structure" type returns a YAML representation of the DOM hierarchy with element tag names, IDs, CSS classes, and data-testid attributes (if present). Use this for understanding page layout, debugging CSS selectors, or locating elements by class/ID. Use the optional selector parameter to scope the snapshot to a subtree. The selector supports CSS (default), XPath, and text content matching via the strategy parameter. Requires active driver_session. Targets the only connected app, or the default app if multiple are connected. Specify appIdentifier (port or bundle ID) to target a specific app.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesSnapshot type
selectorNoSelector to scope the snapshot: CSS selector (default), XPath, text content, or ref ID. If omitted, snapshots entire document.
strategyNoSelector strategy: "css" (default) for CSS selectors, "xpath" for XPath expressions, "text" to find elements by text content, with fallback to placeholder, aria-label, and title attributes. Ref IDs (e.g., "ref=e3") work with any strategy.css
windowIdNoWindow label to target (defaults to "main")
appIdentifierNoApp port or bundle ID to target. Defaults to the only connected app or the default app if multiple are connected.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, so the description is not required to repeat that. It adds valuable behavioral context: requires an active driver_session, targets the only connected app or requires appIdentifier for multi-app scenarios, and describes output as YAML representations. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single paragraph of 5-6 sentences, front-loaded with the main purpose, then organized by type, selector usage, and targeting. Every sentence adds value without redundancy. Perfectly sized for an AI agent to quickly grasp the tool's capabilities.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (5 params, 1 required, no output schema), the description adequately covers purpose, types, usage scenarios, scoping, targeting, and strategies. It lacks an explicit description of the return format beyond 'YAML representation', but for a read-only snapshot tool, this is sufficient. Minor omission: no example output or error conditions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds meaning beyond the schema by explaining the two types in detail, including the analogy to Playwright's aria snapshots, and elaborating on the strategy parameter (e.g., fallback to placeholder, aria-label, title). This provides richer context for parameter selection.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it gets a structured DOM snapshot of a Tauri webview, with two distinct types (accessibility and structure) that serve different purposes. It distinguishes itself from siblings like webview_find_element and webview_get_pointed_element by focusing on full-tree snapshots rather than individual element queries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description provides explicit use cases for each snapshot type: 'understanding UI semantics, finding interactive elements, or accessibility testing' for accessibility, and 'understanding page layout, debugging CSS selectors, or locating elements by class/ID' for structure. It mentions prerequisites (active driver_session) and scoping via selector. However, it does not explicitly mention when NOT to use this tool or alternative sibling tools for more targeted queries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webview_execute_jsA

[Tauri Apps Only] Execute JavaScript in a Tauri app's webview context. Requires active driver_session. Has access to window.TAURI. If you need a return value, it must be JSON-serializable. For functions that return values, use an IIFE: "(() => { return 5; })()" not "() => { return 5; }". Targets the only connected app, or the default app if multiple are connected. Specify appIdentifier (port or bundle ID) to target a specific app. For browser JS execution, use Chrome DevTools MCP instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNoArguments to pass to the script
scriptYesJavaScript code to execute in the webview context. If returning a value, it must be JSON-serializable. For functions that return values, use IIFE syntax: "(() => { return value; })()" not "() => { return value; }"
windowIdNoWindow label to target (defaults to "main")
appIdentifierNoApp port or bundle ID to target. Defaults to the only connected app or the default app if multiple are connected.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses important behaviors: Tauri-specific context (window.__TAURI__), JSON-serializable returns, IIFE requirement, and targeting logic. This supplements the annotations which state it's not read-only and not destructive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description starts with the key constraint and purpose, and proceeds to important usage details. It is concise but packs useful information without fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description adequately covers the tool's domain (Tauri webview), prerequisites, targeting, and return constraints. Given the absence of an output schema, it explains the return requirement (JSON-serializable). It could mention error handling or security implications, but is generally sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions already cover params thoroughly (100% coverage). The tool description provides minimal additional info beyond what's in the schema, such as the Tauri context and default window label, but largely overlaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Execute JavaScript') and the target ('Tauri app's webview context'). It also distinguishes itself from browser JS execution by referencing Chrome DevTools MCP, and from other webview tools by being a general JS execution tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies that this tool is for Tauri apps only, requires an active driver_session, and explicitly directs browser JS execution to Chrome DevTools MCP. It also explains targeting behavior.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webview_find_elementA
Read-only

[Tauri Apps Only] Find DOM elements in a running Tauri app's webview. Supports CSS selectors (default), XPath expressions, and text content matching via the strategy parameter. The "text" strategy first searches element text content, then falls back to placeholder, aria-label, and title attributes. Returns the element's HTML. Requires active driver_session. Targets the only connected app, or the default app if multiple are connected. Specify appIdentifier (port or bundle ID) to target a specific app. For browser pages or documentation sites, use Chrome DevTools MCP instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesThe selector to find: CSS selector (default), XPath expression, text content, or ref ID (e.g., "ref=e3"). Interpretation depends on strategy.
strategyNoSelector strategy: "css" (default) for CSS selectors, "xpath" for XPath expressions, "text" to find elements by text content, with fallback to placeholder, aria-label, and title attributes. Ref IDs (e.g., "ref=e3") work with any strategy.css
windowIdNoWindow label to target (defaults to "main")
appIdentifierNoApp port or bundle ID to target. Defaults to the only connected app or the default app if multiple are connected.

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that it returns the element's HTML, explains fallback behavior for the 'text' strategy (element text content, then placeholder, aria-label, title), and notes that ref IDs work with any strategy. No contradiction with readOnlyHint annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise at 5 sentences, front-loaded with purpose, and every sentence adds value. No redundant or extraneous content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 4 parameters and no output schema, the description fully explains behavior, targeting, strategy details, return value, and prerequisites (driver_session). Also provides alternative tool for non-Tauri contexts.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Adds significant meaning beyond the schema: clarifies windowId defaults to 'main', appIdentifier defaults to only connected app, selector interpretation depends on strategy, and details text strategy fallback chain. Schema coverage is 100%, but description enriches each parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it finds DOM elements in a Tauri app's webview, specifies supported selector strategies (CSS, XPath, text), and differentiates from sibling tools like webview_dom_snapshot and webview_select_element. The verb 'find' and resource 'DOM elements' are specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when not to use: 'For browser pages or documentation sites, use Chrome DevTools MCP instead.' Also provides context on requiring an active driver_session and targeting behavior for appIdentifier, giving clear guidance on proper usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webview_get_pointed_elementA
Read-only

[Tauri Apps Only] Retrieves element metadata for an element the user previously pointed at via Alt+Shift+Click in the Tauri app. Returns the same rich metadata as webview_select_element (tag, id, classes, attributes, text, bounding rect, CSS selector, computed styles, parent chain) plus an annotated screenshot. The user must Alt+Shift+Click an element first before calling this tool. Requires active driver_session. Targets the only connected app, or the default app if multiple are connected. Specify appIdentifier (port or bundle ID) to target a specific app.

ParametersJSON Schema
NameRequiredDescriptionDefault
windowIdNoWindow label to target (defaults to "main")
appIdentifierNoApp port or bundle ID to target. Defaults to the only connected app or the default app if multiple are connected.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond annotations: it requires prior user interaction from Alt+Shift+Click, returns an annotated screenshot, and targets specific apps. Since annotations only provide readOnlyHint=true and openWorldHint=false, the description fully compensates and explains the non-obvious requirement of prior pointing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at 5 sentences with no wasted words. It front-loads the core function and provides all necessary context efficiently. Every sentence adds value, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers prerequisites (Alt+Shift+Click, active driver_session), return type (rich metadata + annotated screenshot), and targeting logic. While no output schema exists, it references a sibling tool for return structure. This is sufficient for a tool with straightforward parameters and no nested objects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with both parameters already described. The description does not add new semantics beyond what the schema provides for windowId and appIdentifier. Baseline 3 is appropriate since the description adds minimal parameter-specific detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves element metadata after a user points via Alt+Shift+Click, specifying it is Tauri-only and contrasting with webview_select_element. The verb 'retrieves' and resource 'element metadata' are specific, and the context distinguishes it from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use: after Alt+Shift+Click, and notes it requires an active driver_session. It also mentions targeting the only connected app or default, and that an appIdentifier can be specified. This provides clear guidance on when to call this tool versus alternatives like webview_select_element.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webview_get_stylesA
Read-only

[Tauri Apps Only] Get computed CSS styles from elements in a Tauri app. Supports CSS selectors (default), XPath, and text content matching via the strategy parameter. Requires active driver_session. Targets the only connected app, or the default app if multiple are connected. Specify appIdentifier (port or bundle ID) to target a specific app. For browser style inspection, use Chrome DevTools MCP instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
multipleNoWhether to get styles for all matching elements (true) or just the first (false)
selectorYesElement selector: CSS selector (default), XPath expression, text content, or ref ID
strategyNoSelector strategy: "css" (default) for CSS selectors, "xpath" for XPath expressions, "text" to find elements by text content, with fallback to placeholder, aria-label, and title attributes. Ref IDs (e.g., "ref=e3") work with any strategy.css
windowIdNoWindow label to target (defaults to "main")
propertiesNoSpecific CSS properties to retrieve. If omitted, returns all computed styles
appIdentifierNoApp port or bundle ID to target. Defaults to the only connected app or the default app if multiple are connected.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false. Description adds crucial behavioral context: requires active driver_session, explains app targeting logic, and details selector strategy options including ref IDs. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Five sentences with no wasted words. Front-loaded with main purpose and key constraint (Tauri Apps Only). Each sentence serves a distinct purpose—purpose, scope, strategy options, targeting rules, and alternatives.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 6 parameters, 1 required, rich schema, and no output schema, the description covers prerequisites, selector strategies, multi-app targeting, and alternative tools. Leaves little ambiguity for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description adds value by explaining that strategy defaults to css, supporting XPath and text, and that ref IDs work across strategies. Also clarifies appIdentifier behavior beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Get computed CSS styles from elements in a Tauri app,' specifying verb, resource, and platform. Distinguishes from sibling tools by noting Tauri-only and referencing Chrome DevTools MCP for browsers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states prerequisite (active driver_session), provides when-not-to-use (browser style inspection → Chrome DevTools MCP), and explains app targeting behavior for single vs multiple connected apps.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webview_interactA

[Tauri Apps Only] Click, scroll, swipe, focus, or perform gestures in a Tauri app webview. Supported actions: click, double-click, long-press, scroll, swipe, focus. Supports CSS selectors (default), XPath, and text content matching via the strategy parameter. Requires active driver_session. For browser interaction, use Chrome DevTools MCP instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
xNoX coordinate for direct coordinate interaction
yNoY coordinate for direct coordinate interaction
toXNoEnding X coordinate for swipe
toYNoEnding Y coordinate for swipe
fromXNoStarting X coordinate for swipe
fromYNoStarting Y coordinate for swipe
actionYesType of interaction to perform
scrollXNoHorizontal scroll amount in pixels (positive = right)
scrollYNoVertical scroll amount in pixels (positive = down)
durationNoDuration in ms for long-press or swipe (default: 500ms for long-press, 300ms for swipe)
selectorNoElement selector: CSS selector (default), XPath expression, text content, or ref ID (e.g., "ref=e3")
strategyNoSelector strategy: "css" (default) for CSS selectors, "xpath" for XPath expressions, "text" to find elements by text content, with fallback to placeholder, aria-label, and title attributes. Ref IDs (e.g., "ref=e3") work with any strategy.css
windowIdNoWindow label to target (defaults to "main")
appIdentifierNoApp port or bundle ID to target. Defaults to the only connected app or the default app if multiple are connected.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, destructiveHint=false, which aligns with the description of performing interactive gestures. The description adds context beyond annotations, such as requiring an active driver session and explaining selector strategies, but could explicitly mention potential side effects (e.g., UI changes). No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, each packed with essential information. The first sentence states purpose and actions, the second adds constraints and alternatives. No redundant text; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 14 parameters, the description covers key behavioral aspects: requires active session, supported actions, selector strategies, and alternative for browser. It lacks explicit mention of error handling, timeout, or return values, but the absence of an output schema reduces the burden. Slight gap in potential failure modes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents each parameter. The description adds value by summarizing parameter behavior (e.g., scroll direction: 'positive = right/down') and providing defaults for duration. This slightly exceeds the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool's purpose: interacting with a Tauri app webview through actions like click, scroll, and swipe. It lists supported actions, selector strategies, and distinguishes from browser interaction tools, providing clear differentiation from siblings like webview_keyboard and webview_dom_snapshot.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes explicit usage conditions: 'Requires active driver_session' and 'For browser interaction, use Chrome DevTools MCP instead.' This tells the agent when to use this tool and when to avoid it, offering clear guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webview_keyboardA

[Tauri Apps Only] Type text or send keyboard events in a Tauri app. The selector parameter (for "type" action) supports CSS selectors (default), XPath, and text content matching via the strategy parameter. Requires active driver_session. Targets the only connected app, or the default app if multiple are connected. Specify appIdentifier (port or bundle ID) to target a specific app. For browser keyboard input, use Chrome DevTools MCP instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNoKey to press (required for "press/down/up" actions, e.g., "Enter", "a", "Escape")
textNoText to type (required for "type" action)
actionYesKeyboard action type: "type" for typing text into an element, "press/down/up" for key events
selectorNoElement selector for element to type into (required for "type" action): CSS selector (default), XPath, text content, or ref ID
strategyNoSelector strategy: "css" (default) for CSS selectors, "xpath" for XPath expressions, "text" to find elements by text content, with fallback to placeholder, aria-label, and title attributes. Ref IDs (e.g., "ref=e3") work with any strategy.css
windowIdNoWindow label to target (defaults to "main")
modifiersNoModifier keys to hold
appIdentifierNoApp port or bundle ID to target. Defaults to the only connected app or the default app if multiple are connected.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds behavioral context beyond annotations: requires driver_session, explains selector strategies (CSS, XPath, text) and their fallback behavior, and clarifies app targeting. Annotations (readOnlyHint=false) are consistent; no contradictions. Could have mentioned side effects like clearing existing text, but sufficient for a keyboard input tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three well-structured sentences: purpose, selector details, targeting/alternatives. Front-loaded with key info, no redundancy. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters and no output schema, the description covers all major aspects: action types, selector strategies, targeting logic, and requirement for driver session. Missing details like return value or error handling, but overall adequate for a moderately complex input tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, providing baseline 3. Description adds value by clarifying that selector is required for 'type' action, explaining ref IDs work with any strategy, and detailing action types. This goes beyond schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Type text or send keyboard events in a Tauri app' with specific verb+resource. It distinguishes from sibling tools like webview_interact by focusing exclusively on keyboard input, and from browser-focused tools by noting the alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use Chrome DevTools MCP for browser keyboard input, provides context about requiring an active driver_session, and explains default app targeting. This gives clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webview_screenshotA
Read-only

[Tauri Apps Only] Screenshot a running Tauri app's webview. Requires active driver_session. Captures only visible viewport. Targets the only connected app, or the default app if multiple are connected. Specify appIdentifier (port or bundle ID) to target a specific app. For browser screenshots, use Chrome DevTools MCP instead. For Electron apps, this will NOT work.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoImage formatjpeg
qualityNoJPEG quality (0-100, only for jpeg format)
filePathNoFile path to save the screenshot to instead of returning as base64
maxWidthNoMaximum width in pixels. Images wider than this will be scaled down proportionally. Can also be set via TAURI_MCP_SCREENSHOT_MAX_WIDTH environment variable.
windowIdNoWindow label to target (defaults to "main")
appIdentifierNoApp port or bundle ID to target. Defaults to the only connected app or the default app if multiple are connected.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behaviors beyond the readOnlyHint annotation: captures only visible viewport, targeting logic (only/appIdentifier), and the filePath behavior. The annotation already marks it as read-only, so the description adds value with technical constraints. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences plus a brief note about alternatives. It front-loads the key constraint ('Tauri Apps Only') and uses clear, direct language. Every sentence adds essential information with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 6 parameters, no output schema, and 19 sibling tools, the description is sufficiently complete. It covers prerequisites, limitations, targeting, and alternatives. The schema covers parameter details. Minor omission: no mention of return format (base64 vs file) beyond the filePath note, but the schema covers that implicitly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the input schema already documents all parameters. The description only adds context for `appIdentifier` (default behavior). Other parameters are not elaborated. Baseline 3 is appropriate since schema does the heavy lifting, with minor added value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: screenshotting a Tauri app's webview, specifying it requires an active driver session and captures only the visible viewport. It distinguishes itself from browser screenshot tools (Chrome DevTools MCP) and notes incompatibility with Electron apps, making the scope unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use and when-not-to-use guidance. It states the tool is for Tauri app webviews, requires a driver session, and gives an alternative for browser screenshots. It also warns that Electron apps will not work, which helps the agent avoid incorrect invocations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webview_select_elementA
Read-only

[Tauri Apps Only] Activates an element picker overlay in the Tauri app. The user visually selects an element by clicking it, and the tool returns rich element metadata (tag, id, classes, attributes, text, bounding rect, CSS selector, computed styles, parent chain) plus an annotated screenshot with the element highlighted. Requires active driver_session. Targets the only connected app, or the default app if multiple are connected. Specify appIdentifier (port or bundle ID) to target a specific app.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeoutNoTimeout in ms for user to pick an element (5000-120000, default 60000)
windowIdNoWindow label to target (defaults to "main")
appIdentifierNoApp port or bundle ID to target. Defaults to the only connected app or the default app if multiple are connected.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=true, so no contradiction. The description adds behavioral context: requires driver_session, targets connected apps, and returns detailed element data. It doesn't detail all side effects but is adequate given annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences with clear front-loading: core purpose first, then return details, then prerequisites and targeting. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 optional parameters and no output schema, the description covers the interaction flow, return data, and targeting. Missing error handling or edge cases, but sufficient for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description reinforces appIdentifier usage but doesn't add new meaning beyond the schema descriptions. No extra semantics needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool activates a visual element picker overlay for Tauri apps, returning rich metadata and an annotated screenshot. This distinguishes it from siblings like webview_find_element (programmatic selection) and webview_get_pointed_element (point-based).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies prerequisites (active driver_session) and targeting rules (connected app, default app, appIdentifier). It doesn't explicitly exclude alternatives, but the context is clear enough for an agent to decide when to use this visual picker.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webview_wait_forA
Read-only

[Tauri Apps Only] Wait for elements, text, or IPC events in a Tauri app. When type is "selector", supports CSS (default), XPath, and text strategies via the strategy parameter. Requires active driver_session. Targets the only connected app, or the default app if multiple are connected. Specify appIdentifier (port or bundle ID) to target a specific app. For browser waits, use Chrome DevTools MCP instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesWhat to wait for
valueYesSelector, text content, or IPC event name to wait for
timeoutNoTimeout in milliseconds (default: 5000ms)
strategyNoSelector strategy (applies when type is "selector"): "css" (default), "xpath", or "text".css
windowIdNoWindow label to target (defaults to "main")
appIdentifierNoApp port or bundle ID to target. Defaults to the only connected app or the default app if multiple are connected.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description does not need to emphasize safety. It adds transparency by detailing the waiting behaviors (selector strategies, IPC events, timeout) and the targeting logic (only connected app, default app). No destructive side effects implied. Slight gap: no mention of timeout behavior on failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is six sentences, each serving a distinct purpose: purpose, strategy details, prerequisites, targeting, appIdentifier clarification, and alternative tool. It is front-loaded with the primary action, and no sentence is redundant. Efficiently covers important aspects without excess.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema, the description does not explain return values, but for a wait tool the return is likely straightforward (success/failure). It covers major operational details (strategies, targeting, prerequisites). Missing explicit mention of timeout behavior (e.g., throws on timeout). Still, it is nearly complete for a read-only tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds context like 'When type is selector, supports CSS (default), XPath, and text strategies' and explains appIdentifier targeting. However, it largely reiterates schema descriptions without adding significant new meaning beyond clarifying defaults and strategies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a clear verb+resource: 'Wait for elements, text, or IPC events in a Tauri app.' It explicitly states the app scope ('Tauri Apps Only') and distinguishes from browser waits by directing to Chrome DevTools MCP. This effectively differentiates it from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool: for waiting in Tauri apps, and when not to: for browser waits, refer to 'Chrome DevTools MCP'. It also explains prerequisites (requires active driver_session) and targeting (default app or specify appIdentifier).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 37 tool updatesv0.11.1
    • Addeddriver_session
    • Addedget_setup_instructions
    • Addedipc_emit_event
    • Addedipc_execute_command
    • Addedipc_get_backend_state
    • Addedipc_get_captured
    • Addedipc_monitor
    • Addedlist_devices
    • Addedmanage_window
    • Addedread_logs
    • Removedtauri_driver_session
    • Removedtauri_get_setup_instructions
    • Removedtauri_ipc_emit_event
    • Removedtauri_ipc_execute_command
    • Removedtauri_ipc_get_backend_state
    • Removedtauri_ipc_get_captured
    • Removedtauri_ipc_monitor
    • Removedtauri_list_devices
    • Removedtauri_manage_window
    • Removedtauri_read_logs
    • Removedtauri_webview_execute_js
    • Removedtauri_webview_find_element
    • Removedtauri_webview_get_styles
    • Removedtauri_webview_interact
    • Removedtauri_webview_keyboard
    • Removedtauri_webview_screenshot
    • Removedtauri_webview_wait_for
    • Addedwebview_dom_snapshot
    • Addedwebview_execute_js
    • Addedwebview_find_element
    • Addedwebview_get_pointed_element
    • Addedwebview_get_styles
    • Addedwebview_interact
    • Addedwebview_keyboard
    • Addedwebview_screenshot
    • Addedwebview_select_element
    • Addedwebview_wait_for
  2. 17 tool updatesv1.0.0
    • First observedtauri_driver_session
    • First observedtauri_get_setup_instructions
    • First observedtauri_ipc_emit_event
    • First observedtauri_ipc_execute_command
    • First observedtauri_ipc_get_backend_state
    • First observedtauri_ipc_get_captured
    • First observedtauri_ipc_monitor
    • First observedtauri_list_devices
    • First observedtauri_manage_window
    • First observedtauri_read_logs
    • First observedtauri_webview_execute_js
    • First observedtauri_webview_find_element
    • First observedtauri_webview_get_styles
    • First observedtauri_webview_interact
    • First observedtauri_webview_keyboard
    • First observedtauri_webview_screenshot
    • First observedtauri_webview_wait_for

TDQS

A4.3/5.0
Disambiguation5/5

Each tool targets a distinct aspect of Tauri automation: session management, IPC, webview DOM, window control, logs, device listing, etc. Overlap is minimal, e.g., webview_find_element vs webview_dom_snapshot serve different purposes (raw HTML vs structured tree).

Naming Consistency4/5

Most tools follow a [domain_]verb_noun pattern (e.g., ipc_emit_event, webview_screenshot). However, some lack the domain prefix (get_setup_instructions, read_logs) and driver_session is noun_noun. Overall pattern is clear but not perfectly uniform.

Tool Count5/5

20 tools is well-scoped for a specialized Tauri automation server. Each tool covers a necessary function without redundancy, spanning session, IPC, webview, window, logs, and device enumeration.

Completeness4/5

Core automation tasks are covered: session management, IPC monitoring/execution, DOM inspection/interaction, window management, logging, and setup. Minor gap: no tool for launching or restarting the app, but this is typical for MCP servers focused on running apps.

Maintenance

ActivityMaintained
ResponsivenessWithin a week

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables AI-driven testing and automation of Tauri desktop applications through natural language, allowing users to interact with UI elements, capture screenshots, execute commands, and test application flows without manual clicking or complex scripts.
    9
    7
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    Enables AI assistants to automate and test Tauri desktop applications through the Model Context Protocol. It provides tools for app management, UI interaction, and state inspection across multiple platforms without requiring CDP dependencies.
    14
    897
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Tauri plugin that enables AI agents to interact with Tauri applications through screenshots, DOM inspection, and input simulation via the Model Context Protocol. It allows agents to perform actions like clicking, typing, and executing JavaScript within the application's webview context.
    897
    1
    MIT

Latest Blog Posts

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/hypothesi/mcp-server-tauri'

If you have feedback or need assistance with the MCP directory API, please join our Discord server