图像处理服务器

一个提供图像处理功能的MCP服务器,支持批量调整大小、压缩、转换格式等操作,可直接集成到IDE中使用。

  • by rafael-castelo
  • TypeScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 rafael-castelo/image-processing-mcp-server

使用说明

图像处理MCP服务器

描述

该项目充当MCP(模型上下文协议)服务器,为常见的图像处理任务提供一套工具。它使Cursor和Claude等应用程序和服务能够直接在IDE中轻松执行调整大小、压缩和转换图像格式等操作,从而简化工作流程,而无需切换上下文。

示例用法

批量调整图像大小:

提示:

Resize all images in `src/assets` folder to a height of 150px,
store the resulting images with the `_small` suffix

转换图像格式:

提示:

Convert all images with the `.jpeg` extension located in the `/media` directory to the `webp` format.
Save the converted images in the same directory.

压缩大图像:

提示:

Compress all images in the `/src/images` directory that have a file size larger than 10MB.

特性

  • 调整图像大小: 调整图像的尺寸。
  • 压缩图像: 通过可配置的质量和无损选项减小文件大小。
  • 转换图像格式: 在各种格式(JPEG、PNG、WebP、AVIF、TIFF)之间更改图像文件。
  • 获取图像元数据: 检索图像文件的技术细节和信息。
  • 作物图像: 从图像中提取指定的矩形区域。

安装

要在本地设置项目,请执行以下步骤:

  1. 先决条件: 确保你的系统上安装了Node.js(推荐版本14或更高)和npm。

  2. 克隆存储库:

    git clone git@github.com:rafael-castelo/image-processing-mcp-server.git
    cd image-processing-mcp
    
  3. 安装依赖关系:

    npm install
    
  4. 构建:

    npm run build
    

    这将生成服务器的构建并将其保存。/建造

用法

从游标使用

将以下配置添加或合并到 mcpServers 对象:

NPX

    {
        "mcpServers": {
        "image-processing": {
                "command": "npx",
                "args": [
                    "-y",
                    "image-processing-mcp-server"
                ]
            }
        }
    }

本地

    {
        "mcpServers": {
        "image-processing": {
                "command": "node",
                "args": [
                    "path/to/mcp/server/build/index.js"
                ]
            }
        }
    }

一旦此配置到位并且Cursor正在运行,它将自动启动 image-processing MCP服务器,使工具可通过聊天中的工具调用或与MCP交互的其他Cursor功能使用。

工具参考

本节详细介绍了MCP服务器公开的图像处理工具,包括它们的用途和参数。

resize-image

说明: 将图像调整到给定的宽度和高度。

参数:

  • imagePath (string,必填):要调整大小的图像文件的绝对路径。
  • outputPath (string,必填):保存调整大小的图像的绝对路径。
  • width (数字,可选):图像的最终宽度。如果提供了高度,则可选。
  • height (数字,可选):图像的最终高度。如果提供宽度,则可选。
  • keepAspectRatio (布尔值,可选):是否保持原始纵横比(默认值: false).
  • quality (数字,可选):压缩质量(默认:格式标准,JPEG/WEBP为1-100,PNG为0-9)。

compress-image

说明: 压缩图像,同时尽可能保持质量。原始格式始终保持不变。

参数:

  • imagePath (string,必填):要压缩的图像文件的绝对路径。
  • outputPath (string,必填):保存压缩图像的绝对路径。
  • quality (数字,可选):控制文件大小和视觉质量之间的权衡。对于JPEG、WebP和AVIF,较高的值(例如90-100)意味着更好的质量和更大的文件,而较低的值(如60-80)会减小文件大小,但可能会引入可见的伪影。
  • lossless (布尔值,可选):如果 true,在格式支持时使用无损压缩(例如PNG、WebP、AVIF)。如果 false,使用有损压缩(默认值: true).

convert-image-format

说明: 在不损失质量的情况下将图像转换为另一种格式。如果输出格式支持,该工具始终使用无损转换。支持的格式:jpeg、jpg、png、webp、avif、tiff。

参数:

  • imagePath (string,必填):要转换的图像文件的绝对路径。
  • outputPath (string,必填):保存转换后图像的绝对路径。
  • format (字符串,必填):所需的输出格式(jpeg、jpg、png、webp、avif、tiff)。

get-image-metadata

说明: 检索给定图像的基本文件信息,包括文件大小、格式、像素尺寸(宽度和高度)、分辨率、颜色空间(例如sRGB、CMYK)和方向细节。

参数:

  • imagePath (string,必填):图像文件的绝对路径。

crop-image

说明: 将图像裁剪到指定的矩形区域。

参数:

  • imagePath (string,必填):要裁剪的图像文件的绝对路径。
  • outputPath (string,必填):保存裁剪图像的绝对路径。
  • left (number,必填):待裁剪区域左上角的x坐标,单位为像素。
  • top (数字,必填):待裁剪区域左上角的y坐标,单位为像素。
  • width (number,必填):要裁剪的区域的宽度,以像素为单位。
  • height (数字,必填):要裁剪的区域的高度,以像素为单位。

batch-image-processing

说明: 在单个批处理操作中运行多个图像处理任务(调整大小、压缩、获取元数据、裁剪图像或转换格式)。始终将此工具用于涉及对多个图像进行操作的任务。

参数:

  • operations (对象数组,必填):要执行的图像处理操作数组。数组中的每个对象都应该有两个属性:
    • toolName (string,必填):要运行的工具的名称(resize-image, compress-image, convert-image-format, get-image-metadata,或 crop-image).
    • options (object,必填):包含中指定的工具特定参数的对象 toolName。有关所需参数,请参阅各个工具说明。