项目简介
ScreenshotMCP旨在解决截图杂乱无章、难以查找和管理的问题。它利用OCR(光学字符识别)和大型语言模型(LLM)自动分析、描述和分类您的截图,并通过一个本地的Model Context Protocol (MCP) 服务器,使AI客户端(如Cursor或Claude Desktop)能够安全、私密地访问和管理您的截图数据。
主要功能点
- OCR文本提取: 自动从PNG/JPG格式的截图中提取文本内容。
- LLM智能分类: 使用LLM为每个截图生成简短描述、建议分类(如KEEP_IMPORTANT、KEEP_NICE、REVIEW、DELETE)和理由。
- 自然语言搜索: 允许您使用日常语言(例如“找工作招聘截图”)搜索您的截图。
- 安全删除工作流: 提供清晰的删除确认机制,确保只有经过明确批准的截图才会被删除。
- 一键打开: 在应用内点击截图文件名即可在本地打开对应的图片文件。
- MCP工具接口: 通过标准MCP协议提供四个核心API工具,供AI客户端无缝集成,实现自动化管理。
安装步骤
- 克隆仓库:
git clone https://github.com/suzana-ilic/screenshot_app cd screenshot_app - 创建并激活虚拟环境:
python3 -m venv venv source venv/bin/activate - 安装依赖:
pip install -r requirements.txt - 配置OpenAI API Key:
在您的用户主目录下的 '.config/openai/' 路径中创建一个名为 'config.yaml' 的文件(例如 '~/.config/openai/config.yaml'),内容如下,将 'YOUR_KEY_HERE' 替换为您的OpenAI API Key:
api_key: "sk-YOUR_KEY_HERE" - 运行MCP服务器:
服务器将启动并在本地监听,通常在 'http://0.0.0.0:7860'。python app.py
服务器配置 (供MCP客户端使用)
MCP客户端需要配置以下JSON对象来连接ScreenshotMCP服务器。这告诉客户端如何启动服务器进程并与之通信,以及服务器提供了哪些工具。
{ "name": "ScreenshotMCP", "command": "python", "args": ["<path_to_screenshot_app>/app.py"], "description": "一个用于智能管理和搜索本地截图的MCP服务器。", "tools": [ { "name": "list_screenshots", "description": "列出指定文件夹中的截图文件。", "parameters": { "type": "object", "properties": { "folder": { "type": "string", "description": "要扫描的文件夹路径,默认为用户桌面上的'Screenshots'文件夹。", "default": "~/Desktop/Screenshots" }, "max_files": { "type": "number", "description": "要列出的最大文件数量,默认为50。", "default": 50 } } } }, { "name": "analyze_screenshots", "description": "对指定文件夹中的截图进行OCR识别和LLM分类。", "parameters": { "type": "object", "properties": { "folder": { "type": "string", "description": "要分析的文件夹路径,默认为用户桌面上的'Screenshots'文件夹。", "default": "~/Desktop/Screenshots" }, "max_files": { "type": "number", "description": "要分析的最大文件数量,默认为20。", "default": 20 } } } }, { "name": "search_screenshots", "description": "使用自然语言查询搜索指定文件夹中的截图。", "parameters": { "type": "object", "properties": { "folder": { "type": "string", "description": "要搜索的文件夹路径,默认为用户桌面上的'Screenshots'文件夹。", "default": "~/Desktop/Screenshots" }, "query": { "type": "string", "description": "自然语言搜索查询。", "default": "" }, "max_files": { "type": "number", "description": "要扫描的最大文件数量,默认为50。", "default": 50 }, "top_k": { "type": "number", "description": "返回的最相关结果数量,默认为10。", "default": 10 }, "min_score": { "type": "number", "description": "返回结果的最小相关性分数(0.0到1.0),默认为0.2。", "default": 0.2 } }, "required": ["query"] } }, { "name": "delete_screenshots", "description": "删除指定文件夹中由文件名列表指定的截图。", "parameters": { "type": "object", "properties": { "folder": { "type": "string", "description": "截图所在的文件夹路径,默认为用户桌面上的'Screenshots'文件夹。", "default": "~/Desktop/Screenshots" }, "filenames": { "type": ["string", "array"], "items": { "type": "string" }, "description": "要删除的截图文件名或文件名列表。可以是一个字符串(单个文件名)或一个字符串数组(多个文件名)。", "default": [] } }, "required": ["filenames"] } } ] }
请注意: 上述 '"<path_to_screenshot_app>"' 应替换为您的 'screenshot_app' 仓库的绝对路径。例如,如果仓库克隆在 '/Users/username/screenshot_app',则应为 '"/Users/username/screenshot_app/app.py"'。
基本使用方法
- 启动服务器后,打开您偏好的MCP客户端 (例如 Cursor 或 Claude Desktop)。
- 在客户端中配置并启用ScreenshotMCP。 客户端将通过上面提供的MCP服务器配置信息与本应用建立连接。
- 使用客户端的AI能力调用ScreenshotMCP提供的工具。 例如,您可以要求AI“列出我的截图”、“分析我的桌面截图文件夹中的所有截图”,或“搜索关于会议记录的截图”。AI将通过MCP协议与ScreenshotMCP服务器交互,执行相应的操作并返回结果。
信息
分类
桌面与硬件