使用说明

项目简介

本项目是一个基于 Model Context Protocol (MCP) 的截图服务器,使用 Python 编写。它通过 MCP 协议与客户端通信,提供屏幕截图功能。客户端可以调用服务器提供的工具,获取用户当前屏幕的截图图像数据。

主要功能点

  • 屏幕截图: 提供 'take_screenshot_image' 工具,允许客户端请求截取服务器运行环境的屏幕截图。
  • 图像数据返回: 截图以图像数据(JPEG 格式)的形式返回给客户端,客户端可以进一步处理或展示该图像。
  • MCP 协议支持: 完全基于 MCP 协议实现,可以与任何兼容 MCP 协议的客户端进行通信。
  • 工具注册与调用: 通过 MCP 的工具注册机制,将截图功能暴露为可调用的工具,方便 LLM 客户端集成和使用。

安装步骤

  1. 安装 Python 依赖: 确保你的 Python 环境中已安装必要的依赖库。在项目根目录下,使用 'uv' 包管理器安装依赖(如果尚未安装 'uv',请先安装 'uv')。

    uv sync

    这将安装 'Pillow', 'pyautogui', 'mcp' 等项目所需的 Python 库。

  2. 启动 MCP 服务器: 运行 'screenshot.py' 文件即可启动截图服务器。

    uv run screenshot.py

    服务器默认使用 'stdio' 传输协议,并在后台运行,等待客户端连接和请求。

服务器配置

对于 MCP 客户端,你需要配置连接到此截图服务器的信息。以下是一个 MCP 客户端配置示例,用于连接到本截图服务器。你需要将此配置添加到你的 MCP 客户端的配置文件中 (通常是 JSON 格式)。

{
  "mcpServers": {
    "screenshot-server": {  // 服务器名称,客户端用于引用
      "command": "/Users/username/.local/bin/uv",  // 启动服务器的命令,这里假设 uv 可执行文件在 /Users/username/.local/bin 目录下
      "args": [  // 启动命令的参数
        "--directory",  // 指定工作目录参数
        "/Users/username/screenshot-server",  //  截图服务器代码所在的目录
        "run",  // uv 运行命令
        "screenshot.py" //  要运行的服务器文件
      ]
    }
  }
}

请注意:

  • 请将上述配置中的 '/Users/username/.local/bin/uv' 替换为你的 'uv' 可执行文件的实际路径。
  • 请将 '/Users/username/screenshot-server' 替换为你的 'screenshot-server' 仓库的实际本地路径。
  • 'server name' (这里是 "screenshot-server") 可以自定义,客户端将使用此名称来引用该服务器。

基本使用方法

  1. 配置 MCP 客户端: 确保你的 MCP 客户端已配置了上述 'screenshot-server' 的连接信息。
  2. 连接到服务器: 启动你的 MCP 客户端,客户端会根据配置尝试连接到截图服务器。
  3. 调用 'take_screenshot_image' 工具: 在 MCP 客户端中,你可以调用名为 'take_screenshot_image' 的工具。
    • 客户端发送 MCP 请求调用 'take_screenshot_image' 工具。
    • 截图服务器接收到请求后,会截取当前屏幕的截图,并将图像数据作为 MCP 响应返回给客户端。
  4. 处理截图数据: 客户端接收到响应后,可以从响应中提取图像数据(Base64 编码的 JPEG 图像),并进行解码和展示或其他处理。 示例代码 'clint.py' 展示了如何调用工具并显示返回的图像。

通过以上步骤,你可以使用 MCP 客户端与截图服务器进行交互,获取屏幕截图用于各种 LLM 应用场景,例如视觉内容分析、辅助决策等。

信息

分类

桌面与硬件