
Screenshot Server (File Path Focused)

2025.04.03
0
Python截图服务文件路径管理浏览器自动化
Screenshot Server 是一个基于 MCP(Modular Communication Protocol)的服务,专注于通过文件路径捕获和保存屏幕截图,便于其他进程或 AI 助手使用。该服务解决了直接通过 MCP 传输截图数据不可靠的问题,提供了两种主要工作流程:一种是将截图直接保存到主机(Host)的 WSL 工作空间,另一种是将截图保存到服务器的本地目录并返回文件路径。
View on GitHub
Overview
基本能力
产品定位
Screenshot Server 是一个专注于通过文件路径捕获和保存屏幕截图的服务,便于其他进程或 AI 助手使用。
核心功能
- 截图保存到主机工作空间:将截图直接保存到主机的 WSL 工作空间,适用于 WSL 主机与 Windows 服务器的交互。
- 截图保存到本地目录:将截图保存到服务器的本地目录,并返回文件路径,适用于通用场景。
- 路径转换:支持 WSL 路径与 Windows UNC 路径的转换,确保文件访问的兼容性。
适用场景
- AI 助手与 WSL 集成:AI 助手在 WSL 中运行,需要捕获 Windows 屏幕并保存到 WSL 工作空间。
- 外部图像处理:需要将截图传递给其他图像分析工具或服务进行处理。
- 跨平台文件共享:在 Windows 和 WSL 之间共享截图文件。
工具列表
save_screenshot_to_host_workspace
:- 能力:将截图保存到主机的 WSL 工作空间,自动转换路径并返回操作状态。
- 参数:
host_workspace_path
(WSL 路径),name
(文件名,可选)。 -
返回:
"success"
或"failed: [error message]"
。 -
take_screenshot_and_return_path
: - 能力:将截图保存到服务器的本地
images/
目录,并返回绝对路径。 - 参数:
name
(文件名,可选)。 -
返回:文件路径或
"failed: [error message]"
。 -
take_screenshot_path
: - 能力:将截图保存到指定的 Windows 或 UNC 路径。
- 参数:
path
(目标目录),name
(文件名,可选)。 - 返回:
"success"
或"failed: [error message]"
。
常见问题解答
- 为什么截图服务器必须运行在 Windows 上?
-
因为需要直接捕获 Windows 屏幕,WSL 无法直接访问 Windows 的图形界面。
-
如何确保 WSL 路径能被 Windows 服务器访问?
-
服务器会自动将 WSL 路径转换为 Windows UNC 路径(如
\\wsl$\Distro\path
)。 -
截图保存失败的可能原因?
- 路径无效、权限不足或服务器未正确配置。
使用教程
使用依赖
- Python 3.x:确保服务器运行的机器上安装了 Python 3.x。
- 依赖安装:
bash uv sync
所需库包括mcp[cli]>=1.4.1
、pyautogui
和Pillow
。
安装教程
- 项目位置:将
screenshot-server
项目文件夹放在 Windows 文件系统(如C:\Users\YourUser\projects\screenshot-server
)。 - 安装依赖:在 Windows 的项目文件夹中运行:
bash uv sync
- 配置 MCP 主机:在 WSL 中更新
mcp_settings.json
,配置服务器启动命令:json { "mcpServers": { "Screenshot-server": { "command": "powershell.exe", "args": [ "-Command", "Invoke-Command -ScriptBlock { cd '<YOUR_WINDOWS_PROJECT_PATH>'; & '<YOUR_WINDOWS_UV_PATH>' run screenshot.py }" ] } } }
替换<YOUR_WINDOWS_PROJECT_PATH>
和<YOUR_WINDOWS_UV_PATH>
为实际路径。
调试方式
- 运行服务器:通过 MCP 主机启动服务器。
- 调用工具:在 WSL 中调用
save_screenshot_to_host_workspace
或其他工具,检查返回状态或路径。 - 查看日志:检查
server.log
文件以获取错误信息。
许可证
None