项目简介

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客户端无缝集成,实现自动化管理。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/suzana-ilic/screenshot_app
    cd screenshot_app
  2. 创建并激活虚拟环境:
    python3 -m venv venv
    source venv/bin/activate
  3. 安装依赖:
    pip install -r requirements.txt
  4. 配置OpenAI API Key: 在您的用户主目录下的 '.config/openai/' 路径中创建一个名为 'config.yaml' 的文件(例如 '~/.config/openai/config.yaml'),内容如下,将 'YOUR_KEY_HERE' 替换为您的OpenAI API Key:
    api_key: "sk-YOUR_KEY_HERE"
  5. 运行MCP服务器:
    python app.py
    服务器将启动并在本地监听,通常在 'http://0.0.0.0:7860'。

服务器配置 (供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"'。

基本使用方法

  1. 启动服务器后,打开您偏好的MCP客户端 (例如 Cursor 或 Claude Desktop)。
  2. 在客户端中配置并启用ScreenshotMCP。 客户端将通过上面提供的MCP服务器配置信息与本应用建立连接。
  3. 使用客户端的AI能力调用ScreenshotMCP提供的工具。 例如,您可以要求AI“列出我的截图”、“分析我的桌面截图文件夹中的所有截图”,或“搜索关于会议记录的截图”。AI将通过MCP协议与ScreenshotMCP服务器交互,执行相应的操作并返回结果。

信息

分类

桌面与硬件