使用说明
项目简介
本项目是一个基于 Model Context Protocol (MCP) 的截图服务器,使用 Python 编写。它通过 MCP 协议与客户端通信,提供屏幕截图功能。客户端可以调用服务器提供的工具,获取用户当前屏幕的截图图像数据。
主要功能点
- 屏幕截图: 提供 'take_screenshot_image' 工具,允许客户端请求截取服务器运行环境的屏幕截图。
- 图像数据返回: 截图以图像数据(JPEG 格式)的形式返回给客户端,客户端可以进一步处理或展示该图像。
- MCP 协议支持: 完全基于 MCP 协议实现,可以与任何兼容 MCP 协议的客户端进行通信。
- 工具注册与调用: 通过 MCP 的工具注册机制,将截图功能暴露为可调用的工具,方便 LLM 客户端集成和使用。
安装步骤
-
安装 Python 依赖: 确保你的 Python 环境中已安装必要的依赖库。在项目根目录下,使用 'uv' 包管理器安装依赖(如果尚未安装 'uv',请先安装 'uv')。
uv sync这将安装 'Pillow', 'pyautogui', 'mcp' 等项目所需的 Python 库。
-
启动 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") 可以自定义,客户端将使用此名称来引用该服务器。
基本使用方法
- 配置 MCP 客户端: 确保你的 MCP 客户端已配置了上述 'screenshot-server' 的连接信息。
- 连接到服务器: 启动你的 MCP 客户端,客户端会根据配置尝试连接到截图服务器。
- 调用 'take_screenshot_image' 工具: 在 MCP 客户端中,你可以调用名为 'take_screenshot_image' 的工具。
- 客户端发送 MCP 请求调用 'take_screenshot_image' 工具。
- 截图服务器接收到请求后,会截取当前屏幕的截图,并将图像数据作为 MCP 响应返回给客户端。
- 处理截图数据: 客户端接收到响应后,可以从响应中提取图像数据(Base64 编码的 JPEG 图像),并进行解码和展示或其他处理。 示例代码 'clint.py' 展示了如何调用工具并显示返回的图像。
通过以上步骤,你可以使用 MCP 客户端与截图服务器进行交互,获取屏幕截图用于各种 LLM 应用场景,例如视觉内容分析、辅助决策等。
信息
分类
桌面与硬件