屏幕监控MCP服务器

ScreenMonitorMCP v2是一款MCP服务器,通过屏幕捕捉为AI助手提供实时视觉能力,支持跨平台使用并包含性能优化功能。

  • by win10ogod
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 win10ogod/ScreenMonitorMCP

使用说明

屏幕监视器MCP v2

一个强大的模型上下文协议(MCP)服务器,通过屏幕捕捉为AI助手提供实时视觉功能。让你的人工智能看到你的屏幕——人工智能助手使用自己的视觉能力分析它看到的内容。

🎯 推荐架构(v2.1+)

ScreenMonitorMCP现在遵循MCP最佳实践:

  • 服务器捕获 截图并返回原始图像数据
  • 您的MCP客户端 (像Claude Desktop一样)使用自己的视觉模型分析图像
  • 无外部AI API 必需-更安全、更简单、更注重隐私
  • 没有API密钥管理 -开箱即用

这种方法更安全、更传统,并遵循模型上下文协议理念。

什么是屏幕监视器MCP?

ScreenMonitorMCP v2是一款革命性的MCP服务器,弥合了人工智能和视觉计算之间的差距。它使AI助手能够捕获屏幕截图,分析屏幕内容,并提供有关显示器上发生的事情的智能见解。

主要特点

  • 实时屏幕截图:跨多个显示器的即时屏幕截图功能
  • AI驱动的分析:使用最先进的视觉模型进行高级屏幕内容分析
  • 流媒体支持:实时屏幕流媒体,用于持续监控
  • 性能监控:内置系统健康和性能指标
  • 多平台:在Windows、macOS和Linux上无缝工作
  • 易于集成:使用Claude Desktop和其他MCP客户端进行简单设置

🚀 Windows性能优化(v2.5+)

新 适用于Windows用户的超高速GPU加速屏幕截图!

ScreenMonitorMCP v2.5+包括可选的Windows特定优化,用于 速度快4-50倍 屏幕截图:

性能比较

方法 捕获时间 技术 用例
MSS(默认) 20-50ms CPU(GDI BitBlt) 跨平台,兼容
DXGI 1-5ms⚡ GPU(DirectX) 高性能捕捉、游戏
世界黄金协会 1-5ms⚡ GPU(DirectX,安全) 安全应用程序,窗口捕获

安装(可选)

如果安装可选软件包,Windows优化将自动工作:

# For DXGI Desktop Duplication (240+ FPS capable - RECOMMENDED):
pip install screenmonitormcp-v2[windows-perf]

# For Windows Graphics Capture (async-based, modern API):
pip install screenmonitormcp-v2[windows-wgc]

# Install both for maximum compatibility:
pip install screenmonitormcp-v2[windows-all]

实施状态:

  • ✅ DXGI(通过dxcam):完全实现-1-5ms捕捉,240+FPS,多显示器
  • ✅ WGC(通过winsdk):完全实现1-5ms异步捕获,现代API
  • ✅ 海上保安厅:始终可用-基于CPU的20-50ms捕获

备注:这些包是可选的。ScreenMonitorMCP无需使用跨平台MSS后端即可完美工作。

益处

  • ✅ 速度快4-50倍:1-5ms捕获与传统方法20-50ms捕获
  • ✅ 降低CPU使用率:CPU开销减少70-90%
  • ✅ 较好质量:捕获DirectX/OpenGL/Vulkan硬件加速的内容
  • ✅ 自动:无需配置-检测并使用最佳可用方法
  • ✅ 安全:WGC需要用户授权才能访问屏幕

检查您的后端

使用 get_capture_backend_info() MCP工具查看哪个后端处于活动状态:

Active Backend: wgc (Windows Graphics Capture)
Performance: 1-5ms per capture
Windows Optimization: Active ✓

快速开始

安装

# Install from PyPI
pip install screenmonitormcp

# Or install from source
git clone https://github.com/inkbytefo/screenmonitormcp.git
cd screenmonitormcp
pip install -e .

配置

选项1:MCP通过stdio(推荐-克劳德桌面)

添加到您的Claude Desktop配置-无需API密钥!

{
  "mcpServers": {
    "screenmonitormcp-v2": {
      "command": "python",
      "args": ["-m", "screenmonitormcp_v2.mcp_main"]
    }
  }
}

重新启动Claude Desktop并开始使用:

  • 使用 capture_screen 截图工具
  • Claude将使用自己的视觉模型分析图像
  • 没有配置,没有API密钥,没有复杂性!
  • 流媒体:使用 create_stream + capture_stream_frame 用于手动帧捕获

选项2:HTTP/SSE上的MCP(远程连接)

对于远程连接或基于web的MCP客户端:

# Install with HTTP dependencies
pip install screenmonitormcp-v2[http]

# Start HTTP server
python -m screenmonitormcp_v2

# Server runs at http://localhost:8000
# MCP endpoints:
#   - SSE: http://localhost:8000/mcp/sse
#   - Messages: http://localhost:8000/mcp/messages

配置您的MCP客户端以通过SSE连接:

{
  "mcpServers": {
    "screenmonitormcp-v2": {
      "transport": "sse",
      "url": "http://localhost:8000/mcp"
    }
  }
}

SSE模式的好处:

  • 网络远程连接
  • 自动推送流媒体(使用 start_auto_push_stream)
  • 多个客户端可以同时连接
  • WebSocket和REST API也可用

备选方案(传统-需要外部AI API):

如果你想使用已弃用的服务器端AI分析工具,请配置:

{
  "mcpServers": {
    "screenmonitormcp-v2": {
      "command": "python",
      "args": ["-m", "screenmonitormcp_v2.mcp_main"],
      "env": {
        "OPENAI_API_KEY": "your-openai-api-key-here",
        "OPENAI_BASE_URL": "https://api.openai.com/v1",
        "OPENAI_MODEL": "gpt-4o"
      }
    }
  }
}

注意:此方法已弃用。请改用推荐的客户端分析。

可用工具

屏幕截图

  • capture_screen -捕获屏幕截图并返回MCP资源URI
    • 返回包含资源URI的微小响应(约200字节)
    • 客户端通过MCP资源API自动获取图像
    • 消除代币爆炸 -响应中没有大数据
    • 无需API密钥,使用MCP客户的内置愿景
    • 缓存保留资源请求的最后10次捕获
    • 这是捕捉屏幕的唯一方法 -简单高效

系统监控

  • get_performance_metrics -系统健康和性能指标
  • get_system_status -系统总体状态
  • get_capture_backend_info -后端状态截图(MSS/DGI/WGC)

流媒体

  • create_stream -创建新的流媒体会话
  • capture_stream_frame -从流中捕获当前帧(返回资源URI)
  • start_auto_push_stream -启动自动推送流媒体(仅限SSE模式)
  • stop_auto_push_stream_tool -停止自动推送流媒体(仅限SSE模式)
  • list_streams -列出活动流
  • stop_stream -停下一条小溪
  • get_stream_info -获取流信息

标准模式(克劳德桌面)用法:

  1. 创建流 create_stream(monitor=0, fps=10, quality=75)
  2. 使用手动捕获帧 capture_stream_frame(stream_id)
  3. 每帧返回一个资源URI以自动显示
  4. 根据需要对更多帧重复步骤2
  5. 停止 stop_stream(stream_id) 完成后

SSE模式(HTTP/远程)用法:

  1. 创建流 create_stream(monitor=0, fps=10, quality=75)
  2. 启用自动推送 start_auto_push_stream(stream_id, fps=5)
  3. 帧以指定的FPS自动推送到客户端
  4. 停止自动推送 stop_auto_push_stream_tool(stream_id)
  5. 停止流 stop_stream(stream_id) 完成后

内存和数据库

  • get_memory_statistics -内存系统统计信息
  • get_memory_usage -详细的内存使用情况
  • get_database_pool_stats -数据库连接池统计信息
  • database_pool_health_check -数据库健康检查

后端信息

  • get_capture_backend_info -屏幕截图后端状态(MSS/DGI/WGC)

用例

  • 筛分试验:捕获用于AI客户端分析的屏幕截图(Claude Desktop等)
  • 调试协助:使用屏幕截图进行可视化调试
  • 内容创建:自动截图文档
  • 可访问性测试:用于无障碍审查的屏幕截图
  • 系统监控:视觉系统健康跟踪

文档

有关详细的设置说明和高级配置,请参阅我们的 MCP设置指南.

需求

  • Python 3.10+
  • MCP兼容客户端(克劳德桌面等)
  • 不需要外部API密钥 对于MCP模式

贡献

我们欢迎捐款!请看 贡献.md 作为指导方针。

许可证

MIT许可证-请参阅 许可证 了解详情。

上一版本

您在寻找v1吗?检查 v1分支 对于之前的版本。


内置于❤️ 通过 inkbytefo