Orbining AI桌面视觉与控制
    
给AI助手眼睛和手。 一个原生的Windows MCP服务器,让人工智能看到屏幕、读取UI元素、点击按钮、键入文本和控制任何应用程序——内置OCR、暗主题支持、窗口遮挡检测和批处理操作排序。
专为 克劳德代码 通过 Leia企业解决方案 为了 Orbinion 项目。
AI编码助手是盲人。它们生成代码,但永远看不到结果。他们无法将设计模型与正在运行的应用程序进行比较。他们无法点击UI进行测试。 此服务器修复了此问题。
它的作用
此MCP服务器弥合了AI和桌面之间的差距。人工智能可以:
- 看 --截图,在任何窗口上运行OCR(自动增强深色主题),检测窗口遮挡
- 阅读 --通过Windows UIAutomation检测每个具有精确位置的UI元素(按钮、输入、文本、选项卡、复选框)
- 互动 --按文本单击元素(UIAutomation+OCR回退),导航菜单,填写表单,键入和粘贴文本
- 导航 --打开应用程序、切换窗口、聚焦选项卡、浏览浏览器URL
- 理解 --扫描整个桌面:窗口可见性百分比、遮挡检测、未覆盖的桌面区域
- 批次 --在一次调用中执行多步骤UI工作流
run_sequence
v2.0中的新增功能
- 窗口遮挡检测 --基于网格的分析显示哪些窗口是真正可见的(可见性%),哪些窗口隐藏在其他窗口后面
- 桌面区域检测 --洪水填充算法,用于查找未覆盖的屏幕区域
- 共享OcrService --具有自动深色主题增强功能的集中式OCR(反转+对比度增强)——单次通过,而不是两次
- 打印窗口API --即使被其他窗口遮挡,也能捕获窗口内容
click_elementOCR回退 --首先是UIAutomation,然后是用于深色主题、web应用程序、iframe的OCRrun_sequence--在单个MCP调用中批处理多个UI操作(单击、键入、粘贴、热键、等待、聚焦、OCR单击)click_menu_item--通过平滑的鼠标移动来导航父菜单>子菜单,以保持子菜单打开- DPI 感知 --在混合缩放的多显示器设置中,每个显示器的DPI用于正确的坐标
- 嵌入式AI指令 --服务器在MCP连接上发送工具使用指南,教导AI更喜欢OCR而不是截图
建筑
AI Client (Claude Code / Claude Desktop)
│
│ MCP / stdio
▼
┌─────────────────────────────┐
│ MCP Server │
│ (ServerInstructions) │
└─────────┬───────────────────┘
│
┌─────────┼──────────────────────────────────────┐
│ │ │ │ │ │
▼ ▼ ▼ ▼ ▼ │
Mouse Keyboard Screen Vision Composite │
Tools Tools Tools Tools Tools │
│ │ │ │
┌────────┼──────────┼──────────┘ │
▼ ▼ ▼ │
Win32 UIAuto- OcrService │
Native mation (dark theme) │
│ │ │
▼ ▼ │
DesktopScanner NativeInput │
(occlusion, (SendInput, │
regions) clipboard) │
│ │ │
└───────┬───────┘ │
▼ │
Windows OS │
(Desktop, Windows, Apps) │
└────────────────────────────────────────────────┘单身本地人。NET 8可执行文件。没有Python。没有Node.js。没有浏览器驱动程序。直接访问Windows API。
需求
- Windows 10/11
- .NET 8 SDK
构建
cd DesktopControlMcp
dotnet build -c Release或者发布为单个文件:
dotnet publish -c Release -r win-x64 --self-contained false使用Claude代码进行设置
将MCP服务器添加到您的Claude Code配置中:
claude mcp add desktop-control -- "C:\path\to\DesktopControlMcp.exe"或者手动将其添加到MCP配置文件中:
{
"mcpServers": {
"desktop-control": {
"command": "C:\\path\\to\\DesktopControlMcp\\bin\\Release\\net8.0-windows\\DesktopControlMcp.exe",
"args": []
}
}
}工具(45+)
视觉与元素检测
| 工具 | 说明 |
|---|---|
scan_desktop | 全桌面扫描——屏幕、可见性为%的窗口、UI元素、桌面区域、任务栏 |
list_windows | 列出所有可见的窗口,包括标题、进程名称、可见性百分比、遮挡状态 |
get_window_details | 获取窗口中的所有UI元素(按类型筛选:按钮、输入、文本等) |
find_element | 在所有窗口中按文本搜索UI元素 |
read_window_text | 从窗口中提取所有可见文本 |
refresh_window | 重新扫描单个窗口的元素(比完全扫描更快) |
交互
| 工具 | 说明 |
|---|---|
click_element | 按文本查找元素并单击——UIAutomation优先,OCR回退用于深色主题/web应用程序 |
type_in_element | 找到一个输入字段并键入文本(ValuePattern、剪贴板粘贴或单击+键入回退) |
interact | 智能交互——自动检测元素类型并执行正确的操作 |
fill_form | 在一次调用中用JSON字段填充多个表单字段:值对 |
select_tab | 按文本选择浏览器或应用程序选项卡 |
click_menu_item | 导航菜单:单击父级,平滑移动到子级,单击--单次调用 |
批处理和复合操作
| 工具 | 说明 |
|---|---|
run_sequence | 在一次调用中执行多个UI操作:点击、键入、粘贴、热键、等待、聚焦、OCR点击、截图 |
click_and_type | 单击位置,然后键入文本 |
focus_and_hotkey | 点击以聚焦(例如iframe),然后自动发送键盘快捷键 |
鼠标和键盘
| 工具 | 说明 |
|---|---|
mouse_click | 点击屏幕坐标 |
mouse_move | 将光标移动到位置 |
mouse_move_smooth | 平滑移动鼠标(保持菜单/子菜单打开) |
mouse_drag | 从一个位置拖动到另一个位置 |
mouse_scroll | 滚动鼠标滚轮 |
mouse_get_position | 获取当前光标位置 |
keyboard_type | 键入文本(支持Unicode) |
keyboard_press | 按一个键 |
keyboard_hotkey | 按组合键(Ctrl+C、Alt+Tab等) |
keyboard_key_down / keyboard_key_up | 按住并松开钥匙 |
窗口和应用程序管理
| 工具 | 说明 |
|---|---|
focus_window | 把窗户带到前台 |
maximize_window | 最大化窗口 |
minimize_window | 最小化窗口 |
restore_window | 恢复最小化/最大化窗口 |
open_app | 按名称打开应用程序(聚焦现有应用程序、单击任务栏或搜索“开始”) |
navigate_to_url | 将浏览器导航到URL |
屏幕截图和OCR
| 工具 | 说明 |
|---|---|
screenshot_to_file | 所有显示器的完整屏幕截图 |
screenshot_region | 特定屏幕区域的截图 |
screenshot_window | 通过PrintWindow API捕获窗口(即使在遮挡时也有效) |
get_screen_info | 获取显示器布局(位置、尺寸、主要) |
ocr_screen_region | 捕获一个区域并运行OCR——自动增强深色主题 |
ocr_window | 在整个窗口上运行OCR——读取所有带有点击坐标的文本 |
ocr_find_text | 使用OCR在屏幕上搜索特定文本——返回点击坐标 |
公用事业
| 工具 | 说明 |
|---|---|
set_clipboard | 设置剪贴板文本而不粘贴 |
paste_text | 通过剪贴板粘贴大文本(XML、代码、多行) |
auto_scroll | 在批次之间暂停滚动 |
wait_seconds | 在操作之间暂停 |
wait_for_element | 轮询UI元素是否出现超时 |
嵌入式AI指令
服务器发送 工具使用指南 在每个MCP连接上自动通过 ServerInstructions。这教会了AI客户端最佳的工作流程,而不需要任何配置文件:
观察优先级: ocr_window > get_window_details > list_windows > scan_desktop > screenshot_to_file
行动优先级: click_element > click_menu_item > run_sequence > paste_text > mouse_click
关键见解: OCR和UIAutomation返回精确的文本和坐标 --AI确切地知道点击什么。截图需要视觉处理和猜测。OCR优先的工作流程更快、更便宜、更可靠。
窗口遮挡检测
服务器使用 基于网格的遮挡分析 (24px单元格)以确定哪些窗口是真正可见的:
Chrome (chrome) [71] @ -2060,-1461 3456x1403 ← 100% visible
VS Code (Code) [45] @ -1500,-800 1200x900 ← 65% visible
Explorer (explorer) [20] @ -1400,-700 800x600 ← 0% visible [OCCLUDED]AI知道它可以与哪些窗口交互,哪些窗口是隐藏的。结合 桌面区域检测 (洪水填充以查找未覆盖的屏幕区域),AI对桌面有完整的空间理解。
深色主题OCR增强
许多现代应用程序在标准OCR失败的地方使用深色主题。服务器在OCR之前自动检测暗背景并增强图像:
- 采样像素亮度 横跨图像
- 如果平均亮度\子菜单
智能缓存
扫描结果将缓存30秒。单个窗口可以通过以下方式刷新 refresh_window 而不是一个完整的 scan_desktop扫描仪使用UIAutomation的 CacheRequest 在单个跨进程调用中批量获取所有属性。
项目结构
DesktopControlMcp/
├── Program.cs # MCP server entry + DPI awareness + ServerInstructions
├── NativeInput.cs # Low-level mouse/keyboard via SendInput
├── Native/
│ └── Win32.cs # P/Invoke: EnumWindows, PrintWindow, window management
├── Models/
│ └── SceneData.cs # Data models: windows (with occlusion), elements, regions
├── Services/
│ ├── DesktopScanner.cs # Desktop scanning + occlusion analysis + region detection
│ ├── OcrService.cs # Shared OCR engine with dark theme auto-enhancement
│ └── UiAutomationHelper.cs # Element interaction patterns
└── Tools/
├── VisionTools.cs # scan, find, click (with OCR fallback), list windows
├── CompositeTools.cs # run_sequence, click_menu_item, navigate, open app
├── MouseTools.cs # Mouse control
├── KeyboardTools.cs # Keyboard control
└── ScreenTools.cs # Screenshots, OCR tools, PrintWindow capture示例
请参阅 examples/ 用于真实工作流程的文件夹:
- 视觉UI比较 --AI并排打开HTML设计和Flutter应用程序,点击两者,并识别每一个视觉差异
- 自动化UI测试 --AI通过点击任何应用程序来测试登录流程、表单验证和导航——不需要测试脚本
- 多应用程序工作流 --AI在单个工作流中跨浏览器、代码编辑器、数据库工具和桌面应用程序进行编排
快速安装
选项A:下载预构建的二进制文件
- 下载自 发布
- 解压拉链
- 添加到克劳德代码:
claude mcp add desktop-control -- "C:\path\to\DesktopControlMcp.exe"选项B:从源代码构建
git clone https://github.com/amichail-1/Orbination-AI-Desktop-Vision-Control.git
cd Orbination-AI-Desktop-Vision-Control/DesktopControlMcp
dotnet build -c Release
claude mcp add desktop-control -- "bin\Release\net8.0-windows\DesktopControlMcp.exe"贡献
欢迎捐款。打开问题或提交PR。
许可证
麻省理工学院
