在线图像压缩MCP服务器
一种MCP(模型上下文协议)服务器,旨在接收在线图像,并使用Sharp对其进行压缩、调整大小,并将其转换为用户所需的规格。
特性
- 图像下载:从任何可访问的URL下载图像
- 图像处理:使用Sharp进行高性能图像转换
- 调整大小:使用各种适合模式(覆盖、包含、填充、内部、外部)调整图像大小
- 压缩:使用渐进和优化选项调整质量设置
- 格式转换:在JPEG、PNG、WebP、AVIF和TIFF格式之间转换
- HTTP服务:通过HTTP端点临时提供处理后的图像
- 自动清理:使用后自动清理临时文件
安装
npm install
npm run build用法
作为MCP服务器
启动服务器:
npm start服务器将在stdio上启动,可以通过MCP客户端连接。
发展模式
对于自动重新加载的开发:
npm run dev可用工具
process_image
根据指定的转换处理来自URL的图像。
参数:
imageUrl(字符串,必填):要处理的图像的URLspecs(对象,必填):加工规范
- resize (对象,可选):调整规格大小 - width (整数):目标宽度(像素)(1-10000) - height (整数):目标高度(像素)(1-10000) - fit (string):如何适应图像(“覆盖”、“包含”、“填充”、“内部”、“外部”) - compression (对象,可选):压缩规格 - quality (整数):图像质量1-100(默认值:80) - progressive (boolean):使用渐进编码(默认值:false) - optimizeScans (布尔值):优化霍夫曼表(默认值:false) - conversion (对象,必填):格式转换 - format (字符串):目标格式(jpeg、png、webp、avif、tiff)
例子:
{
"imageUrl": "https://example.com/image.jpg",
"specs": {
"resize": {
"width": 800,
"height": 600,
"fit": "cover"
},
"compression": {
"quality": 85,
"progressive": true
},
"conversion": {
"format": "webp"
}
}
}答复:
{
"success": true,
"processedImageUrl": "http://localhost:3001/image/uuid-here"
}建筑
- 图像下载:将图像从提供的URL下载到临时存储
- 锋利的加工:应用调整大小、压缩和转换转换
- HTTP服务:通过Express服务器提供处理后的图像
/image/{uuid}端点 - 清理:送达后自动删除临时文件
配置
默认情况下,HTTP服务器在端口3001上运行。这可以通过修改 HTTPServer 构造器in src/index.ts.
文件结构
src/
├── index.ts # Main MCP server entry point
├── types.ts # TypeScript type definitions
├── httpServer.ts # Express HTTP server for serving images
├── tools/
│ └── imageTools.ts # MCP tool implementations
└── utils/
├── imageDownloader.ts # Image download utilities
├── imageProcessor.ts # Sharp image processing
└── cleanup.ts # File cleanup utilities需求
- Node.js 20+
- Sharp(自动处理本机依赖关系)
许可证
ISC
