文件整理服务

一个基于Gemini Vision API的MCP服务器,通过分析文件列表或课程内容的截图自动整理文件。

  • by mutaician
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 mutaician/file-organizer-mcp-server

使用说明

文件管理器MCP服务器

模型上下文协议(MCP)服务器,使用Google的Gemini Vision API分析文件列表/课程内容的屏幕截图,并根据提取的顺序自动组织文件。

特性

  • 截图分析:使用Gemini Vision API从截图中提取文件组织顺序
  • 智能文件组织:按提取顺序匹配文件,并用数字前缀重命名
  • 描述性文件夹:根据内容类型创建特定于部分的文件夹
  • AI/OCR处理:对常见OCR变体(如AI与Al)的稳健处理
  • 撤消支持:可以将有组织的文件恢复到原始状态

先决条件

  • Python 3.13+
  • Visual Studio Code
  • Gemini Vision API的Google API密钥
  • VS代码的MCP扩展
  • uv 包管理器(推荐)或pip

设置

  1. 克隆存储库:
git clone https://github.com/mutaician/file-organizer-MCP-Server.git
cd file-organizer-mcp
  1. 使用uv创建和激活虚拟环境:
uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
uv pip install -r requirements.txt
  1. 安装VS代码MCP扩展:

    • 打开VS代码
    • 转到扩展(Ctrl+Shift+X)
    • 安装GitHub Copilot扩展(或任何支持MCP服务器的扩展)。
  2. 配置VS代码工作区:

    • 创建 .vscode 文件夹(如果不存在)
    • 添加 mcp.json 内容如下:
    {
      "inputs": [
        {
          "type": "promptString",
          "id": "gemini-key",
          "description": "Gemini API Key",
          "password": true
        }
      ],
      "servers": {
        "File Organizer": {
          "type": "stdio",
          "command": "${workspaceFolder}/.venv/bin/python",
          "args": ["${workspaceFolder}/src/server.py"],
          "env": {
            "GOOGLE_API_KEY": "${input:gemini-key}"
          }
        }
      }
    }
    

VS代码中的用法

  1. 启动MCP服务器:

    • 打开命令面板(Ctrl+Shift+P)
    • 类型“MCP:列出服务器”
    • 选择“文件管理器”
    • 提示时输入Gemini API密钥
    • 现在,您应该看到您的服务器及其工具在Copilot Chat/Agent模式下可用。
  2. 在Copilot聊天中,您可以通过以下方式组织文件:

    • 首先,分析屏幕截图以获取文件顺序:
      Could you analyze the screenshot at "/path/to/screenshot.jpg"?
      
    • 然后使用提取的顺序组织文件:
      Could you organize the files in "/path/to/section" using this order?
      
    • 服务器将自动:
      • 根据节标题创建描述性子文件夹
      • 根据文件顺序对其进行编号
      • 处理AI/OCR变化
  3. 其他命令:

    • 列出目录中的文件:
      Could you list the files in "/path/to/directory"?
      
    • 撤消组织:
      Could you undo the organization from "/path/to/organized" back to "/path/to/source"?
      
  4. 最佳实践:

    • 保持屏幕截图清晰明亮,以获得更好的OCR
    • 每次操作后验证组织结果
    • 如果需要,请在重试之前使用撤消功能

关键概念

  1. 屏幕截图分析:

    • 截取所需文件组织的屏幕截图(例如,课程内容列表)
    • 使用Gemini Vision提取顺序和层次结构
    • 处理编号列表和各种格式
  2. 文件组织:

    • 将文件与提取顺序匹配
    • 添加数字前缀(例如“01_”、“02_”)
    • 根据内容类型创建描述性子文件夹
    • 保留前缀后的原始文件名
  3. 智能匹配:

    • 处理OCR文本的变化(AI与Al)
    • 忽略区分大小写
    • 删除可能会干扰的特殊字符
    • 在适当的时候匹配部分名称

故障排除

  • 如果文件不匹配:

    • 检查文件名中的特殊字符
    • 验证屏幕截图文本清晰易读
    • 确保文件扩展名正确
  • 如果服务器无法启动:

    • 验证Gemini API密钥是否有效
    • 检查Python虚拟环境是否已激活
    • 确保安装了所有依赖项

依赖项

  • mcp-sdk:模型上下文协议实现
  • google-generativeai:Gemini AI API客户端
  • pillow:屏幕截图的图像处理