屏幕视觉分析服务

一款为macOS提供的全面屏幕捕捉、OCR和视觉理解能力的模型上下文协议(MCP)服务器。

  • by TIMBOTGPT
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 timbotgpt/screen-vision-mcp

使用说明

屏幕视觉MCP服务器

一个模型上下文协议(MCP)服务器,为macOS提供全面的屏幕捕获、OCR和视觉理解功能。

特性

  • capture_fullscreen:捕获整个屏幕
  • capture_window:捕获特定的应用程序窗口
  • 捕获_区域:捕获定义的屏幕区域
  • extract_text_from_screen:从屏幕截图中提取OCR文本
  • find_text_on_screen:在屏幕上定位文本并返回坐标
  • 获取窗口列表:列出所有打开的窗口及其详细信息
  • get_screen_info:获取显示和屏幕信息
  • 点击_位置:在特定坐标处自动点击
  • 监视器_屏幕_区域:监控区域随时间的变化
  • 截图资源管理和检索

安装

快速安装

npm install -g screen-vision-mcp

来源

  1. 克隆存储库:

    git clone https://github.com/TIMBOTGPT/screen-vision-mcp.git
    cd screen-vision-mcp
    
  2. 安装依赖项:

    npm install
    
  3. 测试服务器:

    npm start
    

使用Claude Desktop

将此服务器添加到您的Claude Desktop MCP配置中(claude_desktop_config.json):

{
  "mcpServers": {
    "screen-vision": {
      "command": "npx",
      "args": ["-y", "screen-vision-mcp"],
      "description": "Screen capture and vision analysis"
    }
  }
}

或者,如果在本地安装:

{
  "mcpServers": {
    "screen-vision": {
      "command": "node",
      "args": ["/path/to/screen-vision-mcp/index.js"],
      "description": "Screen capture and vision analysis"
    }
  }
}

可用工具

capture_fullscreen

捕捉整个屏幕。

参数:

  • save_path (可选):屏幕截图的自定义保存路径

例子:

{
  "name": "capture_fullscreen",
  "arguments": {
    "save_path": "/path/to/save/screenshot.png"
  }
}

capture_window

捕获特定的应用程序窗口。

参数:

  • app_name (必填):应用程序的名称(例如,“Safari”、“Terminal”)
  • save_path (可选):自定义保存路径

例子:

{
  "name": "capture_window",
  "arguments": {
    "app_name": "Safari",
    "save_path": "/path/to/save/window.png"
  }
}

捕获_区域

捕捉屏幕的特定区域。

参数:

  • x (必填):X坐标
  • y (必填):Y坐标
  • width (必填):区域宽度
  • height (必填):区域高度
  • save_path (可选):自定义保存路径

extract_text_from_screen

使用OCR捕获屏幕并提取文本。

参数:

  • region (可选):要捕获的特定区域
    • x, y, width, height:区域坐标

find_text_on_screen

在屏幕上查找文本并返回其位置。

参数:

  • text (必填):要搜索的文本
  • case_sensitive (可选):搜索是否应区分大小写(默认值:false)

获取窗口列表

获取所有打开的窗口及其位置的列表。

get_screen_info

获取有关可用屏幕/显示器的信息。

点击_位置

单击特定屏幕位置。

参数:

  • x (必填):X坐标
  • y (必填):Y坐标
  • button (可选):鼠标按钮(“左”、“右”、“中”,默认值:“左”)
  • double_click (可选):是否双击(默认:false)

监视器_屏幕_区域

监控屏幕区域随时间的变化。

参数:

  • x, y, width, height (必填):要监控的区域
  • duration_seconds (可选):监控时长(最多30秒,默认值:5)
  • interval_ms (可选):检查间隔(毫秒)(默认值:1000)

需求

  • macOS(使用本机 screencapture 命令)
  • Node.js 16+
  • 支持MCP的Claude桌面
  • 自动化功能的屏幕录制权限

权限

首次使用时,macOS可能会请求以下权限:

  • 屏幕录制
  • 可访问性(用于点击自动化)
  • 文件系统访问(用于保存屏幕截图)

在“系统首选项”>“安全和隐私”中授予这些权限。

屏幕截图存储

屏幕截图会自动保存到 screenshots/ 服务器文件夹中的目录。你可以:

  • 通过资源URI系统访问屏幕截图
  • 为单个捕获指定自定义保存路径
  • 通过Claude的资源系统查看保存的屏幕截图

发展

# Install dependencies
npm install

# Start development server
npm run dev

# Run tests
npm test

高级功能

OCR集成

该服务器包括用于macOS Vision框架集成的钩子,以实现高级OCR功能。完整OCR需要使用本机macOS Vision API进行额外设置。

自动化

当与其他MCP服务器结合使用时,点击和监控功能可以实现自动化工作流程。

安全

  • 所有屏幕截图都需要明确的权限
  • 文件系统访问由macOS权限控制
  • 核心功能不需要网络访问

许可证

MIT许可证-有关详细信息,请参阅许可证文件

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

支持

有关问题和疑问,请使用 GitHub问题 页面。