Back to MCP directory
publicPublicdnsLocal runtime

mcp-server-tauri

该项目包含用于Tauri应用与MCP协议集成的插件和服务器,通过GitHub Actions实现自动化测试与发布流程,支持跨平台测试和智能版本发布。

article

README

🚀 MCP Server Tauri

为你的AI助手赋予Tauri开发的超能力

本项目提供了一个模型上下文协议(MCP)服务器,可让Claude、Cursor和Windsurf等AI助手构建、测试和调试 Tauri v2应用程序。运行中的应用程序的截图、DOM状态和控制台日志能为AI提供丰富的上下文信息,使其了解应用程序的运行情况,并提供与之交互的工具。

npm version crates.io License: MIT Tauri v2

文档 · 快速开始 · 可用工具


✨ 主要特性

| 类别 | 功能 | |------|------| | 🎯 UI自动化 | 截图、点击、输入、滚动、元素查找 | | 🔍 IPC监控 | 实时捕获和检查Tauri IPC调用 | | 📱 移动开发 | 列出iOS模拟器和Android模拟器 | | 📋 日志 | 流式传输控制台、Android logcat、iOS和系统日志 |


免责声明:此MCP是使用代理编码工具开发的,可能包含错误。

🚀 快速开始

前提条件

  • Node.js 20+ 和 npm
  • Rust 和 Cargo(用于 Tauri 开发)
  • Tauri CLInpm install -g @tauri-apps/cli@next
  • 移动开发:Xcode(macOS)或Android SDK

1. 将MCP Bridge插件添加到你的Tauri应用中

添加Rust crate:

cargo add tauri-plugin-mcp-bridge

src-tauri/src/main.rs 中注册:

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

    #[cfg(debug_assertions)]
    {
        builder = builder.plugin(tauri_plugin_mcp_bridge::init());
    }

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

tauri.conf.json 中启用全局Tauri:

{
  "app": {
    "withGlobalTauri": true
  }
}

⚠️ 重要提示

如果没有 withGlobalTauri,MCP服务器将无法与你的应用程序的WebView进行交互。

💡 使用建议

npm包 @hypothesi/tauri-plugin-mcp-bridge可选的。如果你想从应用程序的前端代码调用该插件,它提供了TypeScript绑定。MCP服务器通过WebSocket直接与Rust插件通信。

2. 配置你的AI助手

使用 install-mcp 将服务器添加到你的AI助手中:

npx -y install-mcp @hypothesi/tauri-mcp-server --client claude-code

支持的客户端:claude-codecursorwindsurfvscodeclineroo-clineclaudezedgoosewarpcodex

Claude Code
npx -y install-mcp @hypothesi/tauri-mcp-server --client claude-code
Cursor
npx -y install-mcp @hypothesi/tauri-mcp-server --client cursor
VS Code / Copilot
npx -y install-mcp @hypothesi/tauri-mcp-server --client vscode
Windsurf
npx -y install-mcp @hypothesi/tauri-mcp-server --client windsurf
Cline
npx -y install-mcp @hypothesi/tauri-mcp-server --client cline

完成以上步骤后,重启你的AI助手,就可以开始构建Tauri应用程序了!🎉

注意:有关高级配置选项,请参阅 插件文档


💬 斜杠命令(提示)

服务器提供斜杠命令以实现引导式的多步骤工作流程:

| 命令 | 描述 | |------|------| | /setup | 在你的Tauri项目中设置MCP Bridge插件。添加crate、注册插件并配置权限。 | | /fix-webview-errors | 查找并修复WebView中的JavaScript错误。连接到你的应用程序,检索控制台错误,分析它们并帮助你解决问题。 |

只需在AI助手中输入命令即可启动引导式工作流程。


🧰 可用工具(共16个)

UI自动化 — 截图、点击、输入等

| 工具 | 描述 | |------|------| | tauri_driver_session | 启动/停止/查看自动化会话状态 | | tauri_webview_find_element | 通过选择器查找元素 | | tauri_read_logs | 读取控制台、Android、iOS或系统日志 | | tauri_webview_interact | 点击、滚动、滑动、聚焦、长按 | | tauri_webview_screenshot | 捕获WebView截图 | | tauri_webview_keyboard | 输入文本或发送按键事件 | | tauri_webview_wait_for | 等待元素、文本或事件 | | tauri_webview_get_styles | 获取计算后的CSS样式 | | tauri_webview_execute_js | 在WebView中执行JavaScript | | tauri_list_windows | 列出所有打开的WebView窗口 |

多窗口支持:所有WebView工具都接受一个可选的 windowId 参数,以针对特定窗口。使用 tauri_list_windows 来发现可用窗口。

IPC与插件 — 深度Tauri集成

| 工具 | 描述 | |------|------| | tauri_ipc_execute_command | 执行Tauri IPC命令 | | tauri_ipc_get_backend_state | 获取应用程序元数据和状态 | | tauri_ipc_monitor | 启动/停止IPC监控 | | tauri_ipc_get_captured | 获取捕获的IPC流量 | | tauri_ipc_emit_event | 发出自定义事件 |

移动开发 — 设备列表

| 工具 | 描述 | |------|------| | tauri_list_devices | 列出Android设备和iOS模拟器 |


🏗️ 架构

┌─────────────────────────────────────────────────────────────────┐
│                        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)                      │   │
│  └──────────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────────┘

为什么采用这种方法?

  • 丰富的AI上下文 — 截图、DOM和日志有助于AI了解你的应用程序状态
  • 跨平台 — 适用于Linux、Windows、macOS、Android和iOS
  • 无需外部驱动 — 无需Selenium、Playwright或浏览器自动化工具
  • 原生集成 — 直接访问Tauri的IPC和后端

🧑‍💻 开发

# 克隆并安装
git clone https://github.com/hypothesi/mcp-server-tauri.git
cd mcp-server-tauri
npm install

# 构建所有包
npm run build

# 运行测试
npm test

# 开发模式
npm run dev -w @hypothesi/tauri-mcp-server
项目结构
mcp-server-tauri/
├── packages/
│   ├── mcp-server/              # MCP服务器 (TypeScript)
│   ├── tauri-plugin-mcp-bridge/ # Tauri插件 (Rust + JS绑定)
│   └── test-app/                # 测试Tauri应用程序
├── docs/                        # VitePress文档
└── specs/                       # 架构规范
发布
# 发布插件 (Cargo + npm)
npm run release:plugin patch

# 发布服务器 (仅npm)
npm run release:server patch

有关详细信息,请参阅 specs/releasing.md


📚 详细文档


🤝 贡献

欢迎贡献代码!请遵循以下步骤:

  1. 遵循现有的代码模式
  2. 为新功能添加测试
  3. 更新文档
  4. 确保 npm testnpm run standards 通过

📄 许可证

MIT © hypothesi

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client