README
🚀 MCP Server Tauri
为你的AI助手赋予Tauri开发的超能力
本项目提供了一个模型上下文协议(MCP)服务器,可让Claude、Cursor和Windsurf等AI助手构建、测试和调试 Tauri v2应用程序。运行中的应用程序的截图、DOM状态和控制台日志能为AI提供丰富的上下文信息,使其了解应用程序的运行情况,并提供与之交互的工具。
✨ 主要特性
| 类别 | 功能 | |------|------| | 🎯 UI自动化 | 截图、点击、输入、滚动、元素查找 | | 🔍 IPC监控 | 实时捕获和检查Tauri IPC调用 | | 📱 移动开发 | 列出iOS模拟器和Android模拟器 | | 📋 日志 | 流式传输控制台、Android logcat、iOS和系统日志 |
免责声明:此MCP是使用代理编码工具开发的,可能包含错误。
🚀 快速开始
前提条件
- Node.js 20+ 和 npm
- Rust 和 Cargo(用于 Tauri 开发)
- Tauri CLI:
npm 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-code、cursor、windsurf、vscode、cline、roo-cline、claude、zed、goose、warp、codex
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。
📚 详细文档
- 完整文档 — 指南、API参考和示例
- MCP服务器包 — 服务器实现细节
- MCP Bridge插件 — Tauri插件文档
🤝 贡献
欢迎贡献代码!请遵循以下步骤:
- 遵循现有的代码模式
- 为新功能添加测试
- 更新文档
- 确保
npm test和npm run standards通过
📄 许可证
MIT © hypothesi
Scan to join WeChat group