文档裁剪服务

一款基于YOLOv11的文档边界检测与裁剪服务,支持ARM64 Linux设备,提供MCP和HTTP两种交互模式。

  • by konashevich
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 konashevich/mcp-doc-cropper

使用说明

MCP文件裁剪器

使用YOLOv11身份验证提供文档边界检测和裁剪功能的MCP服务器。它设计用于在ARM64 Linux设备(如Rockchip RK3588)上运行,并为本地网络上的其他机器提供服务。

特性

  • 文档裁剪:检测图像中的文档边界并自动裁剪。
  • YOLOv11供电:使用最先进的YOLOv11大型细分模型(yolo11l-seg.pt).
  • 混合式结构:
    • MCP模式:用于基于聊天/指令的交互。
    • HTTP模式:高性能 POST /crop 用于零延迟文件处理的端点。

先决条件

  • Python 3.10+
  • 硬件:建议使用NPU加速(例如Rockchip RK3588),尽管它在CPU上运行。
  • 模型文件:需要 yolo11l-seg.pt 在 /opt/models/yolo/yolo11l-seg.pt.

安装

  1. 克隆仓库:

    git clone <repo-url>
    cd mcp-doc-cropper
    
  2. 设置虚拟环境:

    python3 -m venv .venv
    source .venv/bin/activate
    pip install ultralytics opencv-python numpy mcp
    

使用和配置

使用和配置

此服务器运行在 无状态、双端口 配置。

1.启动服务器

在Linux机器上运行服务器:

./run_server.sh

这将启动两项服务:

  1. MCP服务器(端口3099):处理AI代理连接(SSE)。
  2. 作物API(端口3098):处理高速文件上传。

2.从VS代码/光标/克劳德连接

配置您的 mcp.json (或扩展设置)通过连接 上海证券交易所.

关键设置:

  • 统一资源定位符: http://<IP>:3099/mcp (使用 127.0.0.1 如果VS Code在同一台机器上)。
  • 类型: "sse" (这是强制性的,以防止它试图运行本地进程)。

示例 mcp.json:

{
  "mcpServers": {
    "doc-cropper": {
      "type": "sse",
      "url": "http://127.0.0.1:3099/mcp", 
      "transport": "sse"
    }
  }
}

或者(用于从另一台机器访问家庭网络):

{
  "mcpServers": {
    "doc-cropper": {
      "type": "sse",
      "url": "http://192.168.1.114:3099/mcp",
      "transport": "sse"
    }
  }
}

3.使用(零步流)

  1. 代理连接到MCP服务器。
  2. 代理人看到 get_crop_command 工具。
  3. 代理请求裁剪文件。
  4. 该工具为代理提供了 curl 命令指向 端口3098.
    curl -F file=@doc.jpg http://192.168.1.114:3098/crop -o doc_cropped.jpg
    
  5. 代理人执行 curl 在终端。 完成。

注意:此架构完全绕过LLM上下文窗口。

API

工具: crop_document

  • 输入: image_base64 (string)-Base64编码的图像数据。
  • 输出:裁剪文档的Base64编码字符串。