🚀 截图服务器(文件路径聚焦)
本项目构建了一个基于MCP(模块化通信协议)的服务器,其核心功能在于捕获屏幕截图,并将其保存到指定路径,以方便其他进程或AI助手调用使用。
🚀 快速开始
核心问题与解决方案
直接解析图像数据存在可靠性问题,因此项目采用基于文件路径的方法。以下为您推荐两种工作流程:
1. WSL主机到Windows Server的工作流程
- AI助手在WSL中识别当前工作空间路径(例如
/home/user/current_project
)。
- AI助手使用
use_mcp_tool
调用 Screenshot-server
上的 save_screenshot_to_host_workspace
方法,传递参数 host_workspace_path="/home/user/current_project"
和可选的 name
。
- 收到
"success"
回应。
- AI助手知道截图现在位于
/home/user/current_project/workspace_screenshot.jpg
(或指定名称)。
- AI助手使用
use_mcp_tool
调用运行在WSL中的图像分析服务器/工具,传递路径 /home/user/current_project/workspace_screenshot.jpg
。
- 图像分析服务器读取文件并执行其任务。
2. 一般工作流程
- 调用
take_screenshot_and_return_path
方法。
- 收到截图的路径(例如
C:\path\to\screenshots\default_name.jpg
)。
- 使用该路径进行后续处理。
✨ 主要特性
可用工具
- save_screenshot_to_host_workspace
- 功能:将截图保存到指定的工作空间路径。
- 参数:
host_workspace_path
:WSL中的工作空间路径(例如 /home/user/current_project
)。
name
(可选):图片文件名,不带扩展名,默认为 workspace_screenshot.jpg
。
- take_screenshot_and_return_path
- 功能:捕获屏幕并返回截图的路径。
- 参数:
name
(可选):图片文件名,不带扩展名,默认为 default.jpg
。
- take_screenshot_path
- 功能:指定保存路径和文件名。
- 参数:
path
:文件夹路径(例如 C:\path\to\screenshots
)。
name
:图片文件名,包括扩展名(例如 custom_name.jpg
)。
📦 安装指南
先决条件
- 安装Python 3.x。
- 使用命令安装依赖:
uv sync .
运行服务器
⚠️ 重要提示
必须在Windows上运行此服务器。
环境考虑(特别是WSL2)
- 将项目文件夹放在Windows文件系统中(例如
C:\path\to\screenshot-server
)。
- 在WSL中的MCP主机配置中,使用以下内容启动服务器:
{
"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>
替换为实际的Windows路径。
- 将
<YOUR_WINDOWS_UV_PATH>
替换为实际的uv安装路径。
示例工作流程(AI助手在WSL中)
- AI助手识别当前工作空间路径(例如
/home/user/current_project
)。
- 调用
save_screenshot_to_host_workspace
方法,传递 host_workspace_path="/home/user/current_project"
和可选的 name
。
- 收到
"success"
回应。
- AI助手知道截图位于
/home/user/current_project/workspace_screenshot.jpg
(或指定名称)。
- 调用图像分析服务器,并传递路径
/home/user/current_project/workspace_screenshot.jpg
。
📚 详细文档
文件结构
screenshot.py
:核心MCP服务器脚本。
README.md
:此文档文件。
pyproject.toml
:项目定义和uv依赖项。
uv.lock
:依赖锁定文件。
.gitignore
:Git忽略配置。
.python-version
(可选):Python版本指定器。
server.log
:服务器生成的日志文件。
images/
:take_screenshot_and_return_path
的默认目录。