Windows屏幕截图MCP服务器
一个仅支持Windows的模型上下文协议(MCP)服务器,使AI代理能够捕获应用程序或整个屏幕的屏幕截图,并通过本地或远程AI模型进行可选的视觉问答。
特性
- 全屏截图:捕获整个屏幕或特定显示器的屏幕截图
- 窗口特定捕获:按标题或进程名称定位特定的应用程序窗口
- 窗口枚举:列出所有可见窗口及其进程信息
- AI驱动的分析:使用OpenAI、Anthropic Claude或本地模型分析屏幕截图
- 多种图像格式:支持PNG和JPEG输出
- Windows集成:深度Windows API集成,实现可靠的窗口定位
需求
- Windows操作系统(建议使用Windows 10/11)
- Python 3.8或更高版本
- 必需的Python包(见requirements.txt)
安装
- 克隆或下载此存储库
- 安装依赖项:
pip install -r requirements.txt- 设置API密钥(可选,用于AI分析):
# For OpenAI
set OPENAI_API_KEY=your_openai_api_key
# For Anthropic Claude
set ANTHROPIC_API_KEY=your_anthropic_api_key
# For local models (e.g., Ollama)
set LOCAL_MODEL_URL=http://localhost:11434用法
运行MCP服务器:
python screenshot_server.py可用工具
capture_screen
捕获整个屏幕或特定显示器的屏幕截图。
参数:
monitor(整数,可选):监视器编号(0表示主监视器,1+表示附加监视器)format(字符串,可选):图像格式(“png”或“jpeg”,默认:“png”)
capture_window
捕获特定应用程序窗口的屏幕截图。
参数:
window_title(string):窗口的标题或部分标题process_name(string):进程名称(例如“notepad.exe”)format(字符串,可选):图像格式(“png”或“jpeg”,默认:“png”)
注:要么 window_title 或 process_name 是必需的。
list_windows
列出所有可见的窗口及其标题和进程名称。
参数: 无
analyze_screenshot
使用AI分析屏幕截图并回答相关问题。
参数:
image_data(string):Base64编码图像数据question(string):关于图像的问题model_provider(字符串,可选):“openai”、“anthropic”或“local”(默认值:“openal”)model_name(字符串,可选):特定型号名称(默认:“gpt-4-vision-preview”)
配置
环境变量
OPENAI_API_KEY:用于GPT-4视觉分析的OpenAI API密钥ANTHROPIC_API_KEY:Claude分析的Anthropic API密钥LOCAL_MODEL_URL:本地模型API的URL(默认值:http://localhost:11434)
支持的AI模型
OpenAI
gpt-4-vision-previewgpt-4ogpt-4o-mini
Anthropic
claude-3-sonnet-20240229claude-3-haiku-20240307claude-3-opus-20240229
局部模型
- 任何具有视觉能力的Olama模型(例如。,
llava,bakllava) - 具有兼容API的自定义本地视觉模型
例子
基本屏幕截图
# Capture entire screen
{"tool": "capture_screen", "arguments": {}}
# Capture specific monitor
{"tool": "capture_screen", "arguments": {"monitor": 1, "format": "jpeg"}}窗口特定捕获
# Capture by window title
{"tool": "capture_window", "arguments": {"window_title": "Notepad"}}
# Capture by process name
{"tool": "capture_window", "arguments": {"process_name": "chrome.exe"}}AI分析
# Analyze with OpenAI
{
"tool": "analyze_screenshot",
"arguments": {
"image_data": "base64_encoded_image_data",
"question": "What applications are visible in this screenshot?",
"model_provider": "openai"
}
}
# Analyze with local model
{
"tool": "analyze_screenshot",
"arguments": {
"image_data": "base64_encoded_image_data",
"question": "Describe what you see in this image",
"model_provider": "local",
"model_name": "llava"
}
}安全考虑
- 此服务器需要Windows API访问权限,并且可以捕获敏感信息
- 截图可能包含私人数据-确保正确处理
- API密钥应安全存储,而不是提交给版本控制
- 使用远程AI模型时考虑网络安全
故障排除
常见问题
- Windows模块导入错误:确保您在Windows上运行
- 权限不足:如果捕获系统窗口,请以管理员身份运行
- 未找到窗口:检查窗口标题
list_windows工具优先 - AI分析失败:验证API密钥设置是否正确
调试模式
通过修改脚本中的日志记录级别启用调试日志记录:
logging.basicConfig(level=logging.DEBUG)许可证
MIT许可证-有关详细信息,请参阅许可证文件。
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 在Windows上测试
- 提交拉取请求
