# Reported issues for mcp-server-tauri

Pod holds 18 of 18 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to [mcp-server-tauri](/mcp/mcp-server-tauri).

## Most discussed

### feat req: add support for opencode agent (clients)

https://opencode.ai/docs/mcp-servers/

[Read the thread](https://github.com/hypothesi/mcp-server-tauri/issues/16) · 2026-03-26 · open · external user · 3 comments

### Codex: scoped npm package names are used as MCP server keys; should install-mcp normalize them?

## Summary

  When installing an MCP server for `codex`, `install-mcp` currently infers the server name directly from the npm package identifier.

  For scoped packages, that produces a Codex config entry keyed by the raw scoped package name, which does not match the practical naming format Codex expects.

  ## Repro

  Run:

  ```bash
  npx -y install-mcp @hypothesi/tauri-mcp-server --client codex
```

  Current result written to ~/.codex/config.toml:
```
  [mcp_servers."@hypothesi/tauri-mcp-se

[Read the thread](https://github.com/hypothesi/mcp-server-tauri/issues/15) · 2026-03-21 · closed · external user · 3 comments

### bridge.js: unhandledrejection handler crashes on null-prototype objects

## Bug

`captureLog` in `bridge.js` crashes with `Cannot convert object to primitive value` when a `console.log` argument is a null-prototype object with a circular reference. The log is lost and replaced with the crash error.

## Root cause

`args.map(String)` throws on `Object.create(null)` objects — they have no `toString()`. The `JSON.stringify` fallback also fails when the object has circular references, so there is no safe path left.

## Reproduction

https://github.com/Fulbert/mcp-bridge-

[Read the thread](https://github.com/hypothesi/mcp-server-tauri/issues/9) · 2026-03-04 · closed · external user · 2 comments

### webview tools fail when app has no window labeled 'main'

When using `webview_screenshot`, `read_logs` (console source), and other webview tools in a Tauri app where no window is labeled `main`, all of them fail with:

```
@hypothesi/tauri-mcp-server - Screenshot Tauri Webview (MCP)(windowId: "recording-toolbar")                                              
  ⎿  Error: Screenshot capture failed. Native API not available, html2canvas error: WebView execution failed: Window 'main' not found,     
     Screen Capture API error: WebView execution failed: 

[Read the thread](https://github.com/hypothesi/mcp-server-tauri/issues/7) · 2026-02-18 · closed · external user · 3 comments

### Support for native dialogs?

Is it possible to add support for interacting things like native file dialog? Not sure if Tauri (or the OS) offers any apis to do this, tho.

[Read the thread](https://github.com/hypothesi/mcp-server-tauri/issues/5) · 2026-02-07 · open · external user · 2 comments

### html2canvas doesn't support OKCLH - screenshots fail

Version 0.8
Environment: Windows WSL Ubuntu

There's an error when trying to take a screenshot.
"Error: Screenshot capture failed. Native API not available, html2canvas error: WebView execution failed: Attempting to parse an unsupported color function "oklch", Screen Capture API error: WebView execution failed: Invalid constraint"

Root cause is html2canvas does not support OKCLH (which is used by my app). 

Solution proposal:
Change the MCP to use htmp2canvas-pro. (https://github.com/yorickshan

[Read the thread](https://github.com/hypothesi/mcp-server-tauri/issues/4) · 2026-01-15 · closed · external user · 2 comments

### Size of Screenshots

Could mcp resize the screenshots smaller before submitting to AI?

[Read the thread](https://github.com/hypothesi/mcp-server-tauri/issues/3) · 2025-12-28 · closed · external user · 2 comments

### Connection fails with "invalid character 'M' looking for beginning of value"

This server is very cool, I expect it to help a lot with my current project. It's frustrating to have no connection between my agent and the app. Anyway, I've tried to run it and use it with Antigravity (Google's fairly new Cursor fork). I've set it up by adding:

```json
{
    "mcpServers": {
        "tauri": {
            "command": "npx",
            "args": ["-y", "@hypothesi/tauri-mcp-server"]
        }
    }
}
```

manually to the config. The MCP Bridge plugin came active on port 9223:

``

[Read the thread](https://github.com/hypothesi/mcp-server-tauri/issues/1) · 2025-12-27 · closed · outside contributor · 1 comment

## Most recent

### build: replace Unix-only cp and chmod commands

## Summary

The Node package build scripts use Unix-only shell commands, so native Windows `cmd.exe` cannot complete the workspace build.

Affected scripts:

- `packages/mcp-server/package.json`: `tsc && cp -r src/driver/scripts/*.js dist/driver/scripts/ && chmod +x dist/index.js`
- `packages/cli/package.json`: `tsc && chmod +x dist/index.js`

This is a pre-existing portability issue discovered while verifying #42; it is not caused by that PR.

## Reproduction

On native Windows PowerShell/cmd:

[Read the thread](https://github.com/hypothesi/mcp-server-tauri/issues/43) · 2026-07-22 · open · outside contributor · 0 comments

### Add bridge protocol version and capability negotiation

## Summary

Expose the MCP bridge version, internal protocol version, and supported
capabilities so the TypeScript server can detect outdated or incompatible Rust
plugins.

## Problem

The MCP server and Rust bridge are distributed separately and can be installed
at different versions.

Currently, [`get_backend_state`](https://github.com/hypothesi/mcp-server-tauri/blob/c3656802d87849aaa61a42b3481fa33804bb2bb9/packages/tauri-plugin-mcp-bridge/src/commands/backend_state.rs#L50-L69)
reports applica

[Read the thread](https://github.com/hypothesi/mcp-server-tauri/issues/41) · 2026-07-22 · open · outside contributor · 0 comments

### Unauthenticated control WebSocket has no Origin check → Cross-Site WebSocket Hijacking

Title: Unauthenticated control WebSocket has no Origin check → Cross-Site WebSocket Hijacking (arbitrary JS in the app webview)

## Summary

The bridge's control WebSocket performs no `Origin` validation on the upgrade
handshake, so a web page the developer merely *visits* can connect to it and
drive the running Tauri app — including `execute_js`, which runs arbitrary
JavaScript in the app's authenticated webview. This is a classic Cross-Site
WebSocket Hijacking (CSWSH) / DNS-rebinding exposure,

[Read the thread](https://github.com/hypothesi/mcp-server-tauri/issues/36) · 2026-07-17 · open · external user · 0 comments

### [bridge] Stale session after long idle: WebSocket has no keepalive, `driver_session start` short-circuits with "Already connected"

## Summary

After a long AI conversation, `driver_session start` (and the subsequent webview tools) silently fail even though the Tauri app is still running and reachable. The symptom is: **first session works → after a long idle gap → tool calls fail with connection errors, and re-running `start` does not recover it.** Restarting the MCP client (which respawns the stdio subprocess) restores connectivity immediately.

I've read both halves of the source and believe this is a **missing WebSocket 

[Read the thread](https://github.com/hypothesi/mcp-server-tauri/issues/34) · 2026-06-30 · closed · external user · 0 comments

### How does the UI testing work?

Honestly, this is really cool stuff.
I'm clueless as to how you figured out the UI testing part. I've browsed through the mcp-server package.json but I could not find anything that signalled: "this is a UI testing library"

So.... how did you get it to work?!

I haven't tried this yet, I was really just wondering how to get E2E tests up and running in Tauri as simple as possible.
So without using something like:
`robot framework` -> `some totally unknown Python library` -> `some specific platfor

[Read the thread](https://github.com/hypothesi/mcp-server-tauri/issues/32) · 2026-06-26 · open · external user · 1 comment

### Install in Zed - replaced my entire settings.json file

Self explanatory. 

I ran `npx -y install-mcp @hypothesi/tauri-mcp-server --client` and it overwrote completely my `~/.config/zed/settings.json` with a blank file and only the `@hypothesi/tauri-mcp-server`, with no possiblity for me to get my previous config back.

[Read the thread](https://github.com/hypothesi/mcp-server-tauri/issues/26) · 2026-05-22 · open · external user · 1 comment

### Tauri window is brought to front on every JS eval

## Summary

On macOS, when the MCP server is driving a Tauri app, the app keeps popping to the front of the z-order, even when the agent is just reading DOM state, typing, or clicking. If you're working in another window, the Tauri window jumps over it on nearly every tool call. By contrast, headless Chromium driven by an MCP can sit minimized in the background while being controlled.

## Root cause

`packages/tauri-plugin-mcp-bridge/src/utils.rs` defines:

```rust
#[cfg(target_os = "macos")]
pu

[Read the thread](https://github.com/hypothesi/mcp-server-tauri/issues/25) · 2026-05-19 · open · external user · 0 comments

### codex install bug

Hello,
I get this error after installing this MCP in codex :
```
MCP client for `@hypothesi/tauri-mcp-server` failed to start: MCP startup failed: Invalid MCP server name '@hypothesi/
  tauri-mcp-server': must match pattern ^[a-zA-Z0-9_-]+$

⚠ MCP startup incomplete (failed: @hypothesi/tauri-mcp-server)
```

[Read the thread](https://github.com/hypothesi/mcp-server-tauri/issues/22) · 2026-05-09 · open · external user · 1 comment

### JS execution always times out on macOS (screenshots work fine)

All webview JS execution tools timeout, but native tools (screenshots, window listing, session management) work fine.

## Setup

- macOS 15 (Darwin 25.3.0), Tauri 2.10.3
- `tauri-plugin-mcp-bridge` 0.9.0, `@hypothesi/tauri-mcp-server` 0.9.0
- App uses `devUrl` (Vite on localhost:1420), `titleBarStyle: "Overlay"`
- Plugin registered with `tauri_plugin_mcp_bridge::init()`, `mcp-bridge:default` in capabilities

## What works

- `driver_session` connects fine
- `manage_window list` returns correct w

[Read the thread](https://github.com/hypothesi/mcp-server-tauri/issues/12) · 2026-03-14 · closed · outside contributor · 1 comment

### Websocket binds to `0.0.0.0` by default

Thanks for creating this. I'm interested in using this project so I asked Claude to do a security audit. Here's Claude's output

```
  Security Review

  Overall: MODERATE risk, acceptable for development use with one important fix.

  Good:
  - No telemetry, no outbound HTTP calls, no data exfiltration
  - All dependencies are mainstream (official MCP SDK, ws, zod, tokio)
  - MIT licensed, active maintenance (v0.9.0 released Feb 21, 2026)
  - Debug-only by design, tests exist, TypeScript strict

[Read the thread](https://github.com/hypothesi/mcp-server-tauri/issues/8) · 2026-02-25 · closed · external user · 0 comments

The remaining reports are on [the project's issue tracker](https://github.com/hypothesi/mcp-server-tauri/issues).
