Token导航 LogoToken导航TokenDH.com
Tauri Plugin MCP logo
开发工具未说明官方级别未说明来源级核验

Tauri Plugin MCP

MCP Server

通过MCP协议实现跨平台的Tauri应用自动化测试插件,支持AI助手交互和多窗口管理。

工具数

14

提示词数

0

GitHub Stars

2

资源数

0
自动化测试跨平台TypeScriptClaudeAI交互Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

DaveDev42

提供方

DaveDev42

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

tauri插件mcp

跨平台Tauri测试自动化插件 MCP(模型上下文协议).

使像Claude这样的人工智能助手能够与您的Tauri桌面应用程序进行交互,以进行测试和自动化。

Claude代码插件

此回购可兼作 Claude代码插件.完全工作设置的三个步骤:

1.添加市场并安装插件

/plugin marketplace add DaveDev42/tauri-plugin-mcp
/plugin install tauri-mcp

在安装过程中,系统会提示您:

  • Tauri应用程序目录:相对于项目根的路径(例如。 . 对于单个应用存储库, apps/desktop 对于monorepos)。

2.运行安装程序命令

/tauri-mcp:install

此功能会自动编辑您的Tauri项目: Cargo.toml, src-tauri/src/lib.rs能力, package.json,前端入口(main.tsx/main.ts),以及 .gitignore。每次写入都会被预览为差异,需要您先确认。

3.重新启动克劳德代码

tauri-mcp MCP服务器在重新启动时注册。证实 /mcp --它应该显示 tauri-mcp 连接。您现在可以拨打电话 start_session, snapshot, click等等。

为什么重启?

MCP服务器在Claude Code启动时注册。安装插件或更改 tauri_app_dir 两者都需要重新启动才能生效。

插件提供了什么

MCP服务器作为一个独立的单文件包提供(packages/tauri-mcp/dist/index.js)所有依赖项都内联--否 node_modules 在目标机器上需要,因此安装在macOS、Linux和Windows上的工作方式相同。

内容包括:

组件描述
MCP服务器独立 tauri-mcp 捆绑包(14个用于应用生命周期、UI交互、屏幕截图、日志记录的工具)
/tauri-mcp:install 命令编辑Tauri项目以连接插件的一次性安装程序
tauri-qa 技能QA编排——准备测试场景,委托给QA代理,验证结果
tauri-debug 技能常见MCP会话问题的诊断决策树
qa-tester agent使用MCP工具执行测试场景的测试代理(俳句)
QA验证挂钩验证QA PASS结果是否包括实际的工具调用证据

特性

  • 跨平台:Windows(命名管道)+macOS/Linux(Unix套接字)
  • 无CDP依赖关系:适用于所有WebView后端,包括macOS WKWebView
  • MCP集成:与Claude Code和其他MCP客户端直接集成
  • 多窗口支持:按标签定位任何窗口;自动桥式注射
  • 统一日志记录:构建、运行时、控制台和网络日志,并进行过滤
  • 动态端口分配:自动随机分配端口以避免冲突

先决条件

  • Node.js >= 18
  • 涛瑞 v2.x
  • pnpm (推荐)或npm
  • 货物

快速开始

  1. \[\]添加Rust插件 src-tauri/Cargo.toml
  2. \[\]安装npm包: pnpm add github:DaveDev42/tauri-plugin-mcp#main
  3. \[\]在中注册插件 src-tauri/src/lib.rs
  4. \[\]添加 mcp:default 许可
  5. \[\]在中初始化网桥 main.tsx
  6. \[\]创建 .mcp.json 克劳德代码

安装

1.Rust插件(src-tauri/Cargo.toml)

[dependencies]
tauri-plugin-mcp = { git = "https://github.com/DaveDev42/tauri-plugin-mcp" }

2.前端API(package.json)

pnpm add github:DaveDev42/tauri-plugin-mcp#main

3.MCP服务器

MCP服务器二进制文件(tauri-mcp)安装后自动可用。无需额外设置。

设置

1.注册插件(src-tauri/src/lib.rs)

pub fn run() {
    tauri::Builder::default()
        .plugin(tauri_plugin_mcp::init())
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}

2.添加权限

**选项A:在tauri.conf.json或config/\*.json中(推荐)**

{
  "security": {
    "capabilities": [{
      "identifier": "main-capability",
      "windows": ["main"],
      "permissions": ["core:default", "mcp:default"]
    }]
  }
}

选项B:单独文件(src-tauri/capabilities/default.json)

{
  "$schema": "../gen/schemas/desktop-schema.json",
  "identifier": "default",
  "windows": ["main"],
  "permissions": ["core:default", "mcp:default"]
}

3.初始化网桥(main.tsx)

// Initialize MCP bridge for E2E testing (dev mode only)
if (import.meta.env.DEV) {
  import('tauri-plugin-mcp').then(({ initMcpBridge }) => {
    initMcpBridge().catch(err => {
      console.warn('[MCP] Bridge initialization failed:', err);
    });
  });
}

安全生产设置(可选依赖项)

上述基本设置包括所有版本中的MCP。对于生产应用程序,您可能需要MCP 只在发展中 并且完全从发布二进制文件中删除。

这种方法使用Cargo的可选依赖特性,因此只有在明确请求时才会编译插件。

1.货物可选依赖项(src-tauri/Cargo.toml)

[features]
default = []
dev-tools = ["dep:tauri-plugin-mcp"]

[dependencies]
tauri-plugin-mcp = { git = "https://github.com/DaveDev42/tauri-plugin-mcp", optional = true }

2.有条件的插件注册(src-tauri/src/lib.rs)

pub fn run() {
    let mut builder = tauri::Builder::default();

    #[cfg(feature = "dev-tools")]
    {
        builder = builder.plugin(tauri_plugin_mcp::init());
    }

    builder
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}

3.能力文件拆分

分开 mcp:default 将其转换为自己的功能文件,以便在构建时进行切换。

capabilities/default.json --始终处于活动状态,无MCP权限:

{
  "$schema": "../gen/schemas/desktop-schema.json",
  "identifier": "default",
  "windows": ["main"],
  "permissions": ["core:default"]
}

capabilities/.dev-tools.json.disabled --MCP权限模板(跟踪git):

{
  "$schema": "../gen/schemas/desktop-schema.json",
  "identifier": "dev-tools",
  "windows": ["main"],
  "permissions": ["mcp:default"]
}

capabilities/dev-tools.json --添加到 .gitignore (在构建时生成):

# Dev-tools capability (generated from .disabled at build time)
src-tauri/capabilities/dev-tools.json

4.build.rs——条件能力管理

build.rs 启用该功能时将模板复制到位,否则将其删除:

fn main() {
    let dev_tools_cap = std::path::Path::new("capabilities/dev-tools.json");
    let source_path = std::path::Path::new("capabilities/.dev-tools.json.disabled");

    if std::env::var("CARGO_FEATURE_DEV_TOOLS").is_ok() {
        // Copy .disabled → active (skip if already identical to avoid rebuild churn)
        let should_copy = if dev_tools_cap.exists() {
            std::fs::read(source_path).ok() != std::fs::read(dev_tools_cap).ok()
        } else {
            true
        };
        if should_copy {
            std::fs::copy(source_path, dev_tools_cap)
                .expect("Failed to copy dev-tools capability file");
        }
    } else if dev_tools_cap.exists() {
        std::fs::remove_file(dev_tools_cap).ok();
    }

    tauri_build::try_build(
        tauri_build::Attributes::default()
    ).expect("Failed to build tauri");
}

5.开发脚本(package.json)

{
  "scripts": {
    "dev": "tauri dev --features dev-tools"
  }
}

现在 pnpm dev 启用MCP,同时 tauri build (没有该功能)生成了一个无MCP代码的干净版本。

注: 前端桥梁防护装置(import.meta.env.DEV)从 基本设置 仍然适用——即使插件在运行时以某种方式存在,它也会阻止网桥初始化。

MCP服务器配置

注: 如果您安装了 Claude代码插件,MCP服务器已自动配置。插件在安装过程中会提示输入Tauri应用程序目录。本节适用于不使用插件的手动设置。

添加 .mcp.json 在项目根目录中:

{
  "mcpServers": {
    "tauri-mcp": {
      "command": "npx",
      "args": ["tauri-mcp"],
      "env": {
        "TAURI_APP_DIR": "."
      }
    }
  }
}
注: pnpm用户还可以使用 pnpx tauri-mcppnpm exec tauri-mcp.

Monorepo配置

如果Tauri应用程序位于子目录中(例如。, apps/desktop),set TAURI_APP_DIR:

{
  "mcpServers": {
    "tauri-mcp": {
      "command": "npx",
      "args": ["tauri-mcp"],
      "env": {
        "TAURI_APP_DIR": "./apps/desktop"
      }
    }
  }
}

多个Tauri应用程序

对于具有多个Tauri应用程序的monorepos,请为每个应用程序运行一个单独的MCP服务器实例:

{
  "mcpServers": {
    "tauri-desktop": {
      "command": "npx",
      "args": ["tauri-mcp"],
      "env": { "TAURI_APP_DIR": "./apps/desktop" }
    },
    "tauri-kiosk": {
      "command": "npx",
      "args": ["tauri-mcp"],
      "env": { "TAURI_APP_DIR": "./apps/kiosk" }
    }
  }
}

工具按服务器名称分隔: mcp__tauri-desktop__snapshot, mcp__tauri-kiosk__snapshot等等。

可用工具

会话生命周期

工具参数说明
get_session_statusprobe_bridge?: boolean检查会话(应用程序)状态;随着 probe_bridge: true,包括每个窗口桥的健康状况
start_sessionwait_for_ready?: boolean, timeout_secs?: number, features?: string[], devtools?: boolean开始会话(通过以下方式启动Tauri应用程序 pnpm tauri dev)
stop_session-停止会话(杀死应用程序进程树)

窗口管理

工具参数说明
list_windows-列出所有打开的窗口,包括标签、标题、焦点状态和桥接状态
focus_windowwindow: string按标签聚焦特定窗口

交互

所有交互工具都接受可选 window 参数以针对特定窗口(默认为聚焦窗口)。

工具参数说明
snapshotwindow?获取带有参考号的可访问性树 click/fill
clickref?: number, selector?: string, window?通过ref或CSS选择器单击元素
fillref?: number, selector?: string, value: string, window?填写输入字段
press_keykey: string, window?按键盘键(例如“Enter”、“Tab”)
navigateurl: string, window?导航到URL
screenshotwindow?通过原生操作系统截图
evaluate_scriptscript: string, window?在webview中执行JavaScript

可观测性

工具参数说明
get_logsfilter?: string[], limit?: number, clear?: boolean, window?具有源代码/级别过滤的统一日志访问(构建、运行时、控制台、网络)
get_restart_eventslimit?: number, clear?: boolean, window?使用触发文件获取最近的应用程序重启/重新加载事件

使用 features 参数

要使用Cargo功能启动:

start_session({ features: ["my_feature"] })

这运行: pnpm tauri dev --features my_feature

使用示例

典型测试工作流程:

1. start_session({ timeout_secs: 120 })
2. snapshot()           # Get element refs
3. click({ ref: 5 })    # Click button by ref
4. fill({ selector: "input[name='email']", value: "test@example.com" })
5. screenshot()         # Verify result
6. stop_session()

运作原理

Claude Code  MCP Server  Socket  Tauri Plugin  JS Bridge  Your App
  1. Rust插件 创建IPC服务器(Unix套接字或Windows命名管道)
  2. MCP服务器 连接到IPC并向Claude公开工具
  3. JS大桥 (initMcpBridge())在WebView中启用DOM操作

套接字路径

  • Unix: {project_root}/.tauri-mcp.sock
  • 视窗: \\.\pipe\tauri-mcp-{hash} (哈希值来源于项目路径)

故障排除

“MCP网桥未初始化”

JS桥没有运行。检查:

  • initMcpBridge() 在前端代码中调用
  • 应用程序正在开发模式下运行(import.meta.env.DEV)
  • 检查浏览器控制台是否存在初始化错误

Socket 连接失败

  • 确保应用程序正在运行(start_session 第一)
  • 在Windows上,检查日志中的管道路径: [tauri-plugin-mcp] full_path: \\.\pipe\tauri-mcp-XXXXX
  • 在Unix上,检查 .tauri-mcp.sock 存在于项目根目录中

应用程序启动超时

  • 增加 timeout_secs (默认值:60)
  • 检查是否 pnpm tauri dev 手动工作
  • 在终端输出中查找构建错误

快照返回空

  • 等待应用程序完全加载(使用 wait_for_ready: true)
  • 检查网桥是否已初始化(查找 [MCP] 登录控制台)

发展

克隆后, pnpm install 自动配置git钩子并构建项目。

dist/ 目录被提交到仓库,以便基于git的安装(pnpm add github:...)无需构建步骤即可工作。预提交钩子验证 dist/ 与TypeScript源代码保持同步——如果钩子阻止了你的提交,运行:

pnpm build
git add packages/*/dist/

然后重试您的提交。

许可证

麻省理工学院或阿帕奇-2.0

目录标签

目录标签

自动化测试跨平台TypeScriptClaudeAI交互本地部署Tauri插件MCP协议

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

14

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明nonelocal-only

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP