nx-image-compresslisted
Install: claude install-skill xiaowu89/skill-compress
# 图片压缩
通过 nx-mcp-server 远程压缩服务对图片进行智能压缩。
## 配置
在项目根目录创建 `.mcp.json`:
```json
{
"mcpServers": {
"nx-mcp-compress": {
"type": "url",
"url": "https://mcp.api-inference.modelscope.net/4378d43d3e7d4c/mcp",
"env": {
"NX_API_KEY": "你的 API Key"
}
}
}
}
```
��找顺序:项目根目录 → 用户家目录。提取 `url` → `MCP_URL`,`env.NX_API_KEY` → `API_KEY`。
Skill 直连 MCP 端点,**无需重启 Claude Code**。
> **没有 API Key?** 联系微信 `zhjian_2026` ���取。
## 压缩流程
### 步骤 1:检查配置
```bash
cat .mcp.json 2>/dev/null || cat ~/.mcp.json 2>/dev/null
```
- 找到 → 记录 `url` 和 `NX_API_KEY`,继续步骤 2
- 找不到 → 询问用户是否已有 API Key:
- **有 Key**:帮用户创建 `~/.mcp.json`,全局和项目安装都通用
- **没有 Key**:告知联系微信 `zhjian_2026` 获取
> ⚠️ 配置缺失时不要继续后续步骤。
### 步骤 2:执行压缩(一次 Bash 调用,纯内存,零文件)
替换 `PIC_DIR`、`MCP_URL`、`API_KEY`、`QUALITY` 后,heredoc 直接通过 stdin 喂给 node:
```bash
NODE_PATH=$(npm root -g) node << 'COMPRESSEOF'
const fs=require('fs'),path=require('path');
let PIC_DIR='<目标图片目录绝对路径>';
const SINGLE_FILE='<单张图片路径,为空则压缩整个目录>';
const MCP_URL='<从.mcp.json读取的url>';
const API_KEY='<从.mcp.json读取的NX_API_KEY>';
const QUALITY=90;
(async()=>{
const exts=['.png','.jpg','.jpeg','.webp','.bmp','.tga'];
let imgs;
if(SINGLE_FILE){imgs=[path.basename(SINGLE_FILE)];PIC_DIR=path.dirname(SINGLE_FILE)}
else{imgs=fs.readdirSync(PIC_DIR).filter(f=>exts.includes(path.extname(f).toLowerCase())).sort()}
const origTotal=imgs.reduce((s,f)=>s+fs.statSync(path.join(PIC_DIR,f)).size,0);
console.log(`共 ${imgs.length} 张,总 ${(origTotal/1024).toFixed(0)}KB