图像转WebP服务

一个提供图像转换为WebP格式并支持可选调整大小的FastMCP服务器。

  • by ChrisTansey007
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 christansey007/image-webp-mcp-server

使用说明

映像到WebP MCP服务器

FastMCP服务器,提供图像转换工具,将图像转换为WebP格式,并具有可选的调整大小功能。

特性

  • 单张图像转换:将一个图像转换为WebP格式
  • 批量图像转换:在单个请求中转换多个图像
  • 可选调整大小:调整图像大小,同时保持纵横比
  • 质量控制:可调节的WebP质量设置
  • HTTP传输:可通过HTTP访问,便于集成

工具

1. convert_image

将单个图像转换为WebP格式,并可选择调整大小。

参数:

  • image_path (str):输入图像的路径
  • quality (int,默认值=80):WebP质量(0-100)
  • width (可选[int]):目标宽度(如果未指定高度,则保持纵横比)
  • height (可选[int]):目标高度(如果未指定宽度,则保持纵横比)

退货: 包含转换详细信息的词典

2. bulk_convert

在单个请求中将多个图像转换为WebP格式。

参数:

  • image_paths (List[str]):输入图像的路径列表
  • quality (int,默认值=80):WebP质量(0-100)
  • width (可选[int]):所有图像的目标宽度
  • height (可选[int]):所有图像的目标高度

退货: 每个图像的转换详细信息字典列表

安装

先决条件

  • Python 3.11+
  • pip或uv包管理器

再进行

使用pip:

pip install fastmcp pillow

使用紫外线:

uv pip install fastmcp pillow

用法

运行服务器

地方发展

python image_webp_mcp_server.py

服务器将于启动 http://0.0.0.0:8000/mcp

使用Docker

  1. 构建Docker镜像:
docker build -t image-webp-mcp-server .
  1. 运行容器:
docker run -p 8000:8000 -v /path/to/your/images:/images image-webp-mcp-server

示例用法

服务器运行后,您可以使用任何兼容MCP的客户端访问工具:

转换单张图像

{
  "tool": "convert_image",
  "arguments": {
    "image_path": "/path/to/image.jpg",
    "quality": 85,
    "width": 800
  }
}

批量转换图像

{
  "tool": "bulk_convert",
  "arguments": {
    "image_paths": [
      "/path/to/image1.jpg",
      "/path/to/image2.png",
      "/path/to/image3.gif"
    ],
    "quality": 80,
    "width": 1200,
    "height": 800
  }
}

支持的图像格式

服务器支持PIL(Python成像库)可以处理的所有图像格式:

  • JPEG图像
  • 便携式网络图形
  • 图形交换格式
  • 位图
  • 标签式图像文件格式
  • 更多

配置

质量设置

  • 0-100:WebP质量级别
  • 80:默认质量(大小和质量的良好平衡)
  • 更高的值:质量更好,文件大小更大
  • 低值:文件大小更小,质量降低

调整行为大小

  • 如果两者都有 width 和 height 指定:图像大小调整为精确尺寸
  • 要是…就好了 width 指定:计算高度以保持纵横比
  • 要是…就好了 height 指定:计算宽度以保持纵横比
  • 如果两者均未指定:则保留原始尺寸

错误处理

服务器在转换过程中优雅地处理错误:

  • 文件路径无效
  • 不支持的图像格式
  • 文件权限问题
  • 内存限制

响应中返回错误,并带有描述性消息。

发展

项目结构

image-webp-mcp-server/
├── image_webp_mcp_server.py  # Main server file
├── Dockerfile                # Docker configuration
├── requirements.txt          # Python dependencies
└── README.md                # This file

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

致谢