返回市场
网页批处理MCP

网页批处理MCP

作者:mhe8mah6 星标更新:2025-07-26

项目介绍

WebP 批量转换器

一个用于批量将图像转换为 WebP 格式的 Model Context Protocol (MCP) 服务器,支持跨平台。与支持 MCP 的 IDE(如 Cursor)无缝集成。

<a href="https://glama.ai/mcp/servers/@mhe8mah/webp-batch-mcp"> <img width="380" height="200" src="https://gips0.baidu.com/it/u=2271486659,2888856782&fm=3081&app=3_081&f=PNG?w=760&h=400" alt="WebP 批量转换器 MCP 服务器" /> </a>

🌟 特性

  • 🖼️ 支持批量转换 PNG、JPG 和 JPEG 文件到 WebP 格式
  • 🌍 跨平台支持(macOS、Linux、Windows)
  • ⚡ 多线程处理以实现快速转换
  • 🎛️ 灵活的选项包括质量控制、无损模式和元数据保留
  • 📊 提供详细的报告,包括文件大小和节省统计
  • 🔧 双引擎支持 - 优先使用 Google 的 cwebp,如果不可用则回退到 Sharp
  • 🎯 集成 MCP 以便在 AI 助力的开发环境中使用

📦 安装

全局安装

npm install -g webp-batch-mcp

本地开发

git clone https://github.com/mhe8mah/webp-batch-mcp.git
cd webp-batch-mcp
npm install
npm run build

Docker

docker build -t webp-batch .
docker run -v /path/to/images:/data webp-batch

🚀 使用方法

命令行接口

node dist/cli.js [options]

选项

  • --src <dir> - 源目录(默认:当前目录)
  • --quality <0-100> - WebP 质量设置(默认:75)
  • --lossless - 使用无损编码(推荐用于 PNG)
  • --overwrite - 替换原始文件为 WebP 版本
  • --threads <n> - 并发转换的数量(默认:CPU 核心数)
  • --preserve-meta - 保留 EXIF 和 ICC 元数据
  • --flat <dir> - 将所有 WebP 文件输出到指定目录

示例

# 转换当前目录中的所有图片
node dist/cli.js

# 高质量转换特定目录
node dist/cli.js --src ./photos --quality 95 --preserve-meta

# 无损转换并覆盖
node dist/cli.js --src ./images --lossless --overwrite

# 批量处理输出到指定目录
node dist/cli.js --src ./input --flat ./output --threads 8

MCP 服务器

MCP 服务器提供了一个工具:convert_to_webp

工具参数

{
  "src": "string",          // 源目录(默认:".")
  "quality": "number",      // 质量 0-100(默认:75)
  "lossless": "boolean",    // 无损模式(默认:false)
  "overwrite": "boolean",   // 替换原始文件(默认:false)
  "threads": "number",      // 并发线程数(默认:CPU 核心数)
  "preserveMeta": "boolean", // 保留元数据(默认:false)
  "flat": "string"          // 输出目录(可选)
}

⚙️ 如何在 Cursor 中添加此服务器

  1. 克隆并构建项目:
git clone https://github.com/mhe8mah/webp-batch-mcp.git
cd webp-batch-mcp
npm install
npm run build
  1. 打开 Cursor 设置
  2. 导航至 功能MCP
  3. 添加新的服务器配置:
{
  "mcpServers": {
    "webp-batch": {
      "command": "node",
      "args": ["/path/to/webp-batch-mcp/dist/server.js"]
    }
  }
}
  1. 重启 Cursor
  2. convert_to_webp 工具将在您的 AI 对话中可用

🔧 技术细节

转换策略

  1. 主引擎:Google 的 cwebp 工具(包含在 libwebp-tools 中)

    • 最快性能
    • 最佳压缩
    • 完整特性支持
  2. 备用引擎:Sharp(Node.js)

    • 纯 JavaScript 实现
    • 无需外部依赖
    • 跨平台兼容性

输出行为

  • 默认:在原始文件旁边创建 .webp 文件
  • 覆盖模式:替换原始文件为 WebP 版本
  • 扁平模式:将所有 WebP 文件输出到指定目录
  • 元数据保留:当请求时保持 EXIF 和 ICC 配置文件

性能

  • 默认利用所有 CPU 内核
  • 使用 p-limit 并发处理图像
  • 提供实时进度反馈
  • 报告详细的转换统计信息

🛠️ 开发

构建

npm run build

测试

npm test

开发模式

npm run dev

📊 测试结果

使用真实网络图片验证:

  • JPEG (35KB → 17KB):节省空间 51%
  • PNG (7.9KB → 2.8KB):节省空间 65%
  • 总体:平均压缩率 53%

📋 依赖项

运行时

  • @modelcontextprotocol/sdk - MCP 服务器框架
  • sharp - 图像处理备用方案
  • chalk - 终端彩色输出
  • commander - CLI 参数解析
  • glob - 文件模式匹配
  • p-limit - 并发控制

开发

  • typescript - 类型安全
  • tsup - 快速 TypeScript 打包器
  • jest - 测试框架

📄 许可证

MIT 许可证 - 详情见 LICENSE 文件。

🤝 贡献

  1. 分叉仓库
  2. 创建功能分支
  3. 为新功能添加测试
  4. 确保所有测试通过
  5. 提交拉取请求

🆘 支持

对于问题和功能请求,请使用 GitHub 问题跟踪器