🚀 截圖服務器(文件路徑聚焦)
本項目構建了一個基於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
的默認目錄。