MCP server for image compression and upload
npm install mcp-image-uploader一个用于图片智能压缩和上传的 Model Context Protocol (MCP) 服务器。
- 多源输入: 支持本地文件路径和远程 URL
- 智能压缩: 根据图片格式和大小自动应用最优压缩策略
- 多格式支持: JPEG、PNG、WebP、AVIF
- 双运行时: 支持 Node.js 和 Bun
``bash使用 pnpm
pnpm install
使用方式
$3
在
~/Library/Application Support/Claude/claude_desktop_config.json 中添加:`json
{
"mcpServers": {
"image-uploader": {
"command": "node",
"args": [
"/path/to/mcp-image-uploader/dist/index.js",
"UPLOAD_ENDPOINT=https://your-api.com/upload"
]
}
}
}
`或使用开发模式:
`json
{
"mcpServers": {
"image-uploader": {
"command": "npx",
"args": [
"tsx",
"/path/to/mcp-image-uploader/src/index.ts",
"UPLOAD_ENDPOINT=https://your-api.com/upload"
]
}
}
}
`$3
`json
{
"mcpServers": {
"image-uploader": {
"command": "bun",
"args": [
"/path/to/mcp-image-uploader/src/index.ts",
"UPLOAD_ENDPOINT=https://your-api.com/upload"
]
}
}
}
`$3
| 参数 | 必填 | 说明 |
|------|------|------|
|
UPLOAD_ENDPOINT | ✅ | 图片上传接口地址 |也可以通过环境变量配置:
`bash
UPLOAD_ENDPOINT=https://your-api.com/upload node dist/index.js
`$3
上传接口需要支持以下格式:
请求:
- Method:
POST
- Body: 图片文件 (File 对象)响应:
`json
{
"url": "https://cdn.example.com/path/to/image.jpg"
}
`错误响应:
`json
{
"dm_error": 10001,
"error_msg": "错误信息"
}
`工具说明
$3
压缩并上传图片到图床。
参数:
| 参数 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
|
source | string | (必填) | 图片来源:本地路径或远程 URL |
| skipCompress | boolean | false | 是否跳过压缩,直接上传原图 |
| autoCompress | boolean | true | 是否启用智能自动压缩(仅 skipCompress=false 时生效) |
| quality | number | - | 手动压缩质量 (1-100),仅 skipCompress=false 且 autoCompress=false 时生效 |
| format | string | - | 输出格式:jpeg/png/webp/avif(默认保持原格式) |返回:
`json
{
"success": true,
"url": "https://...",
"stats": {
"originalSize": "1.5 MB",
"compressedSize": "320 KB",
"compressionRatio": "78%"
}
}
`压缩策略
$3
- 自动: < 500KB → quality=78 | > 2MB → quality=65 | 常规 → quality=72
- 手动: quality=85 (默认)$3
- 自动: 有损量化 + 动态压缩等级
- 手动: 无损压缩$3
- 自动: quality=75, alphaQuality=100
- 手动: 自定义 quality (默认 75)$3
- 自动: 无损压缩
- 手动: quality=50 (默认)开发
`bash
开发模式
pnpm dev构建
pnpm build启动
pnpm start
``MIT