项目简介

'mcp-image-compression' 是一个基于 Model Context Protocol (MCP) 架构构建的图像压缩微服务。它专注于为开发者提供快速且高质量的图像压缩功能,帮助优化网站和应用程序中的图片资源,从而提升加载速度和用户体验。作为一个 MCP 服务器,它可以与支持 MCP 协议的客户端(如 LLM 应用)配合使用,通过标准化的接口提供图像压缩服务。

主要功能点

  • 多格式支持: 支持 JPEG, PNG, WebP, AVIF 等主流图片格式的压缩。
  • 离线使用: 无需连接互联网即可使用,保护数据隐私。
  • 智能压缩: 根据图片内容自动选择最佳压缩参数,无需手动调整。
  • 批量处理: 支持并行压缩多张图片,提高处理效率。
  • 质量可控: 可自定义压缩质量,平衡文件大小和视觉效果。
  • MCP 工具集成: 通过 MCP 协议将图像压缩功能以工具 (Tool) 的形式提供给 LLM 客户端调用。

安装步骤

NPX 方式 (推荐用于快速体验)

  1. 确保已安装 Node.js 和 npm/npx

  2. 配置 MCP 客户端 (例如 LLM 应用) 的服务器配置,在 'mcpServers' 中添加以下配置:

    {
      "mcpServers": {
        "Image compression": {
          "command": "npx",
          "args": [
            "-y",
            "@inhiblab-core/mcp-image-compression"
          ],
          "env": {
            "IMAGE_COMPRESSION_DOWNLOAD_DIR": "<YOUR_DIR>"  // 请替换为图片压缩后存放的目录,例如:"./compressed_images"
          },
          "disabled": false,
          "autoApprove": []
        }
      }
    }

    注意:

    • '<YOUR_DIR>' 必须替换为您希望存放压缩后图片的本地目录。请确保该目录存在或程序有权限创建。
    • 'IMAGE_COMPRESSION_DOWNLOAD_DIR' 环境变量指定了图片压缩后服务器存放的目录,MCP客户端需要根据实际情况配置访问压缩后图片的路径。

Docker 方式 (推荐用于生产环境)

  1. 确保已安装 Docker

  2. 构建 Docker 镜像: 克隆仓库或下载代码后,在仓库根目录下执行:

    docker build -t mcp-image-compression .
  3. 运行 Docker 容器: 运行容器时,需要通过环境变量 'IMAGE_COMPRESSION_DOWNLOAD_DIR' 指定图片压缩后的存放目录。例如:

    docker run -d -p 9003:9003 -e IMAGE_COMPRESSION_DOWNLOAD_DIR=/app/compressed_images mcp-image-compression

    注意:

    • '-e IMAGE_COMPRESSION_DOWNLOAD_DIR=/app/compressed_images' 设置容器内的图片存放目录为 '/app/compressed_images'。您可能需要根据实际需求调整,并考虑数据卷挂载,以便在宿主机上访问压缩后的图片。
    • '-p 9003:9003' 将容器的 9003 端口映射到宿主机的 9003 端口。但作为 MCP 服务器,通常通过 Stdio 或其他 MCP 客户端支持的协议通信,端口映射可能不是必需的,取决于具体的部署和客户端连接方式。
  4. 配置 MCP 客户端: Docker 部署后,MCP 客户端的服务器配置需要根据 Docker 容器的实际运行方式进行调整。例如,如果需要通过网络访问,则需要配置容器的网络地址和端口。但对于此 'mcp-image-compression' 仓库,它主要通过 'StdioServerTransport' 与客户端通信,客户端配置主要关注启动命令和环境变量。

基本使用方法

  1. 启动 MCP 服务器: 根据 NPX 或 Docker 安装方式启动 'mcp-image-compression' 服务器。

  2. 在 MCP 客户端中调用 'image_compression' 工具: 在支持 MCP 协议的 LLM 客户端中,可以调用名为 'image_compression' 的工具来压缩图片。

  3. 工具输入参数

    • 'urls': (必填,字符串数组) 需要压缩的图片 URL 列表。可以是网络 URL 或本地文件路径。本地文件路径无需添加任何前缀。
    • 'quality': (可选,数字,默认 80) 压缩质量,取值范围 0-100,数值越大质量越高,文件体积也越大。
    • 'format': (可选,字符串) 压缩后的图片格式。例如 '"jpeg"', '"png"', '"webp"', '"avif"'。如果为空,则保持原始图片格式。
  4. 工具返回结果: 工具执行成功后,会返回压缩后的图片在服务器本地存储的路径 URL 列表。MCP 客户端需要根据配置的 'IMAGE_COMPRESSION_DOWNLOAD_DIR' 环境变量以及服务器的实际部署情况,构建可访问的图片 URL。

示例 (MCP 客户端请求):

{
  "jsonrpc": "2.0",
  "method": "call_tool",
  "params": {
    "name": "image_compression",
    "arguments": {
      "urls": ["https://www.example.com/image.png", "path/to/local/image.jpg"],
      "quality": 60,
      "format": "webp"
    }
  },
  "id": "123"
}

注意: 此服务器实现主要通过标准输入输出 (Stdio) 与 MCP 客户端通信,适用于集成到本地 LLM 应用或工具链中。

信息

分类

AI与计算