屏幕智能分析服务

Screen Intelligence MCP Service 是一个快速、本地的屏幕语义理解服务,提供视觉覆盖层和UI自动化功能,适用于ThinkDrop AI等场景。

  • by lukaizhi5559
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 lukaizhi5559/screen-intelligence-service

使用说明

🎯 屏幕智能MCP服务

通过ThinkDrop AI的视觉覆盖,快速、本地、语义化的屏幕理解。

特性

  • 🔍 筛分试验:使用辅助功能API查询UI元素
  • 🎨 视觉叠加:通过亮点和指南显示AI“看到”的内容
  • 🖱️ UI自动化:单击、键入并与应用程序交互
  • 📊 发现模式:检查所有UI元素,如Playwright Inspector
  • ⚡ 快速:<100ms屏幕分析(与3-4s视觉模型相比)

建筑

Screen Intelligence MCP (Port 3008)
├── Accessibility Adapter (AX/UIA/AT-SPI)
├── Action Engine (@nut-tree/nut-js)
├── Overlay Manager (Visual feedback)
└── OpenCV Sidecar (Phase 4 - for canvas/games)

安装

cd mcp-services/screen-intelligence-service
npm install

配置

复制 .env.example 到 .env 并配置:

cp .env.example .env

用法

启动服务

npm start

开发模式(带自动重新加载)

npm run dev

API终点

健康检查

GET /service.health

能力

GET /service.capabilities

筛分试验

POST /screen/describe
Body: {
  "showOverlay": true,
  "includeHidden": false
}

查询元素

POST /screen/query
Body: {
  "query": "Send button",
  "role": "button",
  "highlight": true
}

单击操作

POST /screen/action/click
Body: {
  "target": { "x": 100, "y": 200 },
  "showGuide": true
}

类型动作

POST /screen/action/type
Body: {
  "target": { "x": 100, "y": 200 },
  "text": "Hello World",
  "showConfirmation": true
}

显示叠加

POST /screen/overlay/highlight
Body: {
  "element": { "bounds": {...}, "label": "Send" },
  "duration": 3000
}

展示吐司

POST /screen/overlay/toast
Body: {
  "message": "Action completed!",
  "type": "success",
  "duration": 3000
}

清除覆盖层

POST /screen/overlay/clear

平台支持

macOS✅ (第二阶段完成)

  • 适配器: EnhancedMacOSAccessibilityAdapter
  • 技术:AppleScript+辅助功能API(AX)
  • 特性:元素缓存、查询方法、置信度评分
  • 需求:可访问权限
  • 授予权限:系统首选项>安全与隐私>隐私>辅助功能

视窗🚧 (TODO-实施指南可用)

  • 适配器: WindowsUIAAdapter (占位符)
  • 技术:UI自动化(UIA)
  • 实施方案:
    • node ffi-napi用于原生COM API
    • edge js for。NET UIA库
    • PowerShell网桥
  • 看: PLATFORM_IMPLEMENTATION_GUIDE.md 详细说明
  • 占位符: src/adapters/accessibility/windows.js

Linux🚧 (TODO-实施指南可用)

  • 适配器: LinuxATSPIAdapter (占位符)
  • 技术:AT-SPI(辅助技术服务提供商接口)
  • 实施方案:
    • 用于D-Bus通信的节点dbus
    • Python桥接到pyatspi2
    • X11自动化回退
  • 看: PLATFORM_IMPLEMENTATION_GUIDE.md 详细说明
  • 占位符: src/adapters/accessibility/linux.js

开发/测试✅

  • 适配器: MockAccessibilityAdapter
  • 目的:跨平台开发和测试
  • 自动回退:当平台适配器不可用时使用

绩效目标

运营 目标 愿景服务
屏幕描述 <100ms 3-4s
元素查询 <50ms N/A
叠加显示 <20ms N/A
完整工作流程 <500ms 5-8s

视觉反馈

配色方案

  • 🟢 绿色 (≥0.9):高置信度
  • 🔵 蓝色 (0.8-0.9):信心良好
  • 🟡 黄色 (0.6-0.8):不确定
  • 🔴 红 (<0.6):信心低

覆盖类型

  1. 发现模式:显示所有检测到的元素
  2. 高亮:关注具体要素
  3. 指南:分步工作流程说明
  4. 面包:通知消息

发展

运行测试

npm test

棉绒

npm run lint

格式

npm run format

与ThinkDrop AI集成

该服务将在主应用程序的MCP注册表中注册:

// In main app
const screenIntelligence = {
  name: 'screen-intelligence',
  url: 'http://localhost:3008',
  apiKey: process.env.SCREEN_INTELLIGENCE_API_KEY,
  enabled: true
};

路线图

第一阶段:核心服务✅

  • [x] MCP服务器设置
  • [x] 基本路线
  • [x] 健康检查
  • [x] 模拟适配器

第二阶段:可访问性(进行中)

  • [x] macOS AX适配器(基本)
  • []Windows UIA适配器
  • []增强的元素查询
  • []坐标转换

第三阶段:叠加系统

  • []电子叠加窗口
  • []突出显示渲染
  • []发现模式UI
  • []祝酒通知

第四阶段:OpenCV回退

  • []Python sidecar
  • []模板匹配
  • []变更检测
  • []JSON桥

第五阶段:行动

  • [x] nut.js集成(基本)
  • []验证
  • []引导模式
  • []多步骤工作流

第六阶段:整合

  • []更新parseIntent.cjs
  • []新建屏幕查询节点
  • []退回视觉服务
  • []端到端测试

许可证

麻省理工学院