关于 Mochify
Mochify 是通过 mochify.app API 处理文件的图像与 PDF 命令行工具及 MCP 服务。它支持图像转换、压缩、编辑和 PDF 操作,并提供本地 stdio 与托管 HTTP 两种 MCP 接入方式。
主要功能
- 01转换为 AVIF、JXL、WebP 等格式
- 02调整尺寸、裁剪和优化图像
- 03移除背景并遮盖图像区域
- 04优化、提取、栅格化和拆分 PDF
- 05本地 stdio 与托管 HTTP MCP 服务
适用场景
- 01批量转换用于网页发布的图像
- 02分享前调整照片尺寸或遮挡信息
- 03缩小 PDF,同时保留文本
- 04向 AI 助手提供图像和 PDF 处理能力
MCP 相关
Mochify 通过 `mochify serve` 提供本地 stdio 服务,也在 `mcp.mochify.app` 提供托管 Streamable HTTP 服务。两者使用同一处理引擎;本地模式接收磁盘路径,托管模式接收 HTTPS URL 或 base64 数据。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.mochify.app/mcpclaude mcp add --transport http app-mochify-mochify https://mcp.mochify.app/mcp{"mcpServers":{"app-mochify-mochify":{"type":"http","url":"https://mcp.mochify.app/mcp"}}}在 Cursor 中打开{"servers":{"app-mochify-mochify":{"type":"http","url":"https://mcp.mochify.app/mcp"}}}在 VS Code 中打开{"mcpServers":{"app-mochify-mochify":{"type":"http","url":"https://mcp.mochify.app/mcp"}}}{"mcpServers":{"app-mochify-mochify":{"serverUrl":"https://mcp.mochify.app/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
mochify-cli
适用于 mochify.app 的命令行工具和 MCP 服务——这是一个快速、以隐私为先的图像压缩与转换 API,由原生 C++ 引擎驱动。
在终端中将图像压缩并转换为现代格式(AVIF、JXL、WebP、Jpegli),处理 PDF,或通过 Model Context Protocol 让 Claude 等 AI 助手直接使用同一引擎——既可以作为本地 stdio 服务(mochify serve),也可以使用托管服务 mcp.mochify.app,无需安装。
跳转至: 安装 · CLI 用法 · PDF 处理 · MCP 服务 · 套餐
安装
macOS(Homebrew):
brew tap getmochify/mochify
brew install mochify
Windows(Scoop):
scoop bucket add mochify https://github.com/getmochify/scoop-mochify
scoop install mochify
Linux / WSL:
# x86_64
curl -L https://github.com/getmochify/mochify-cli/releases/latest/download/mochify-linux-x86_64 -o mochify
chmod +x mochify
sudo mv mochify /usr/local/bin/
# arm64
curl -L https://github.com/getmochify/mochify-cli/releases/latest/download/mochify-linux-arm64 -o mochify
chmod +x mochify
sudo mv mochify /usr/local/bin/
Cargo(所有平台):
cargo install mochify
需要安装 Rust。如果 Linux/WSL 上已经安装工具链,这是最简便的选择。
**手动安装:**所有二进制文件均可在 Releases 获取。
从源代码构建:
cargo install --path .
身份验证
使用你的 mochify.app 账户登录,即可解锁完整额度:
mochify auth login
这会打开浏览器,你可以在其中登录并授权 CLI。凭据会自动保存到 ~/.config/mochify/credentials.toml——无需环境变量或手动复制密钥。CLI 和 MCP 服务都会自动读取凭据。
如果设备没有浏览器(例如通过 SSH 连接),可以使用代码登录——在任意设备上打开打印出的链接并输入代码:
mochify auth login --no-browser
mochify auth status # check whether you're signed in
mochify auth logout # remove saved credentials
不注册账户时,每批可处理 3 张图像(基于 IP 限制)。免费账户每月可处理 25 张图像。前往 mochify.app 注册。
CLI 用法
mochify [OPTIONS] <FILES>...
选项
| 标志 | 描述 |
|---|---|
-t, --type <FORMAT> | 输出格式:jpg、png、webp、avif、jxl |
-w, --width <N> | 目标宽度,单位为像素 |
-H, --height <N> | 目标高度,单位为像素 |
--crop | 裁剪至精确尺寸(由显著性引导) |
--region <X,Y,W,H> | 裁剪为矩形区域,使用相对于正向图像左上角的比例 0–1 |
--redact <SPEC> | 隐藏区域:faces 和/或以 ; 分隔的矩形框 x,y,w,h(与 --region 使用相同的约定) |
--redact-style <STYLE> | fill(纯黑色,默认)或 blur(仅美化处理) |
-r, --rotation <DEG> | 旋转角度:0、90、180、270 |
-o, --output <DIR> | 输出目录(默认与输入文件相同) |
-n, --name <NAME> | 输出文件的基本名称(不含扩展名) |
--clarity | 增强清晰度(增强中间调对比度,使图像更清晰、细节更丰富) |
--remove-bg | 移除背景(由 AI 分离前景) |
--background <COLOR> | --remove-bg 的合成颜色(white、#ff0000 等) |
--keep-metadata | 保留 EXIF/元数据(默认剥离) |
-q, --quality <N> | 输出质量 1–100(默认:自动) |
--smart-compress | 由显著性引导质量——细节区域保留更多质量,平坦区域则较少 |
--brightness <N> | 曝光度,范围为 -100(最暗)到 +100(最亮) |
--optimize-for-web | 使用渐进式编码 + 4:2:0 色度采样,生成适合网页传输的最小文件 |
--lossless | 像素级精确输出(仅限 jxl、webp、png) |
--hdr [MODE] | Ultra HDR 增益图:preserve(仅指定标志)或 generate |
-p, --prompt <TEXT> | 自然语言提示词——自动解析所有参数 |
-j, --jobs <N> | 同时处理的文件数(默认 4;设为 1 可严格逐个处理) |
-k, --api-key <KEY> | 覆盖 API 密钥(或设置 MOCHIFY_API_KEY 环境变量) |
示例
# Convert to AVIF
mochify photo.jpg -t avif
# Resize and convert to WebP
mochify photo.jpg -t webp -w 800
# Batch convert a folder to AVIF at 1200px wide
mochify ./images/*.jpg -t avif -w 1200 -o ./compressed
# Natural-language prompt — let the AI pick the right params
mochify photo.jpg -p "convert to avif, 1200px wide"
mochify photo.jpg -p "optimise for eBay"
mochify photo.jpg -p "remove background and convert to WebP"
mochify photo.jpg -p "resize to 50%, strip EXIF, keep as WebP"
# Custom output name
mochify photo.jpg -t webp -n hero
mochify product.jpg -p "optimise for Shopify" -n product-main
# Pipe file paths from stdin
find . -name "*.jpg" | mochify -t webp -o ./out
cat images.txt | mochify -p "convert to avif 1200px wide" -o ./compressed
ls *.heic | mochify -t jpg
质量
除非另有指定,否则会自动选择质量。
# Fixed quality
mochify photo.jpg -t webp -q 70
# Let saliency pick it — detailed subjects keep more, flat areas less
mochify photo.jpg -t avif --smart-compress
# Smallest file to serve from a web server
mochify photo.jpg -t webp --optimize-for-web
# Brighten a dark photo
mochify photo.jpg --brightness 30
# Pixel-exact
mochify scan.png -t webp --lossless
--lossless 仅适用于 jxl、webp 和 png——在请求发出前,jpg 和 avif 就会被拒绝。它会覆盖 -q 和 --smart-compress,而且输出通常比输入更大:无损保留的是像素,而非文件大小。对于本身已经有损的源文件(JPEG、AVIF、HEIC),返回的会是效果最好的有损编码,因为无法恢复该文件已丢弃的信息——出现这种情况时,CLI 会说明。
裁剪到指定区域
--crop 会自动找到主体。若你自己——或驱动 MCP 服务的 AI 助手——已经知道想要图片中的哪一部分,则使用 --region:
# The bottom-left quarter
mochify photo.jpg --region 0,0.5,0.5,0.5
# A region, then sized: -w/-H apply to the cropped part
mochify photo.jpg --region 0.2,0.1,0.6,0.8 -w 800 -t webp
这四个数字依次是 x,y,width,height,表示图片的比例值(0 到 1),以图片显示时的左上角为基准——即使手机照片存储时是横着的,也会按正确方向计算。使用比例值而非像素值,这样无论图片以什么尺寸查看,同一个框都适用。值大于 1 时会在请求发出前被拒绝,因为这几乎总是表示框的单位是像素。区域会先被裁切:-w/-H、--crop、--rotation 和 --remove-bg 都会作用于该区域。--verbose 会打印实际裁切的像素矩形。
通过 MCP,助手可以据此按内容裁剪——例如“裁掉脚部”“只要 logo”:助手会查看图片本身并选定框,而 Mochify 始终只会收到这四个数字。
遮盖敏感信息
在图片被发送到任何地方之前,遮住人脸、车牌、地址或其他任何内容:
# Every face, found automatically
mochify family.jpg --redact faces
# A number plate, as a box (fractions of the upright image, like --region)
mochify car.jpg --redact 0.38,0.71,0.24,0.08
# Both, softened with a blur instead of a solid fill
mochify street.jpg --redact "faces;0.38,0.71,0.24,0.08" --redact-style blur
用 ; 分隔条目——, 属于框的内容。默认方式是 fill(纯黑色),任何必须保密的内容都应使用它;blur 用于模糊人脸的效果,而模糊的文字或人脸有时可以被还原。
遮盖操作始终会剥离元数据(EXIF 可能包含原图缩略图),并移除任何 HDR 增益图(其中包含场景结构),即使你要求保留它们也是如此。faces 只能尽力识别——可能会漏掉小脸和侧脸——因此,如果没有找到人脸,CLI 会告知你。分享前请检查输出。
HDR(Ultra HDR 增益图)
--hdr 用于控制 Ultra HDR / ISO 21496-1 增益图,它能让照片在 HDR 显示屏上以真正的高光余量呈现。
| 模式 | 作用 |
|---|---|
--hdr(或 --hdr preserve) | 保留源文件已有的增益图。不会凭空生成,因此对 SDR 照片不起作用。 |
--hdr generate | 保留已有的增益图,并且在源文件为普通 SDR 时生成增益图。要实现“让它变成 HDR”,就用这个模式。 |
只有 jpg 输出可以携带增益图(jxl 通过不同方式携带 HDR;avif、webp 和 png 则不支持),因此请与 -t jpg 搭配使用。若同时使用 --clarity 或 --remove-bg,也会跳过此处理,因为这些选项会改变增益图所依据的基底。CLI 会读取 X-Mochify-HDR 响应标头,并在输出最终不含增益图时告知你。
# Keep the headroom an iPhone photo already captured, converting to JPEG
mochify IMG_1234.heic -t jpg --hdr
# Give an SDR photo a gain map
mochify photo.jpg --hdr generate
# Or just say so
mochify photo.jpg -p "make this HDR"
输出文件命名
默认情况下,当输出格式和目录与输入相同时,结果会保存为 {name}_mochified.{ext},这样就能清楚地看出文件经过了处理。如果该文件已存在,则会添加数字后缀(_1、_2 等)。格式发生变化时(例如 .jpg → .webp),扩展名变化本身已足够明确,因此不会添加后缀。
使用 -n, --name 设置明确的基础名称:mochify photo.jpg -t webp -n hero 会保存为 hero.webp。提示词路径也支持此功能:mochify *.jpg -p "optimise for Shopify, name them product" 会生成 product.webp、product_1.webp 等文件。
PDF 处理
系统会根据 .pdf 扩展名自动识别 PDF,并通过 --op 选择要执行的操作。(单条命令中不能混合处理 PDF 和图像——请分别运行。)
create 是个例外:它的输入是图像,因此无法根据 .jpg 判断要执行什么操作。请传入 --op create,或在提示词中直接说“pdf”——mochify *.jpg -p "convert to pdf" 也会生成 PDF。
| 操作 | 接收 | 返回 | 功能 |
|---|---|---|---|
optimize | 一个 PDF | .pdf | 重新压缩 PDF 中的图像。不会改动文本、字体、矢量图和版面,因此文档仍可搜索。 |
extract | 一个 PDF | .zip | 提取文档中插入的图像,保持其存储时的分辨率。 |
rasterize | 一个 PDF | .zip | 将每一页(包括文本)渲染为图像。 |
split | 一个 PDF | .zip | 将 PDF 拆分为每页一个单页 PDF。 |
create | 图像 | .pdf | 根据图像创建 PDF,每张图像一页,顺序与输入顺序一致。 |
| 标志 | 适用范围 | 描述 |
|---|---|---|
--op <OP> | 全部 | optimize、extract、rasterize、split、create |
-t, --type <FORMAT> | rasterize、extract | png、jpg、webp、avif、jxl——extract 还支持 original(不重新编码) |
--dpi <N> | rasterize、optimize、create | 渲染分辨率(rasterize,默认值为 150)、PDF 中保留图像的目标分辨率(optimize),或页面尺寸(create) |
-q, --quality <N> | 除 split 外的全部操作 | 输出质量 1–100(与图像操作使用相同的标志) |
--max-width <N> | extract、optimize、create | 限制图像宽度(像素);0 表示保持原尺寸 |
--min-size <N> | extract、optimize | 跳过任一边小于此尺寸的图像;0 表示全部处理 |
--page <SIZE> | create | fit(默认值)、a4、letter |
--no-combine | create | 每张图像生成一个单页 PDF,并打包为 .zip 返回 |
# Make a PDF smaller without touching the text
mochify report.pdf --op optimize -q 75 --dpi 150
# Pull the embedded images out as WebP, capped at 1600px
mochify brochure.pdf --op extract -t webp --max-width 1600
# Render pages to PNG at 150 DPI, or high-res JPEGs for print
mochify document.pdf --op rasterize -t png --dpi 150
mochify document.pdf --op rasterize -t jpg --dpi 300 -q 90
# One PDF per page
mochify document.pdf --op split
# Build a PDF from images (one page per image, in the order given)
mochify page-*.jpg --op create --page a4 -n scanned
mochify page-*.jpg --op create --no-combine # one PDF per image, as a zip
# Or describe it in natural language
mochify report.pdf -p "compress this pdf"
mochify brochure.pdf -p "get the photos out as png"
mochify document.pdf -p "split into pngs"
mochify page-*.jpg --op create -p "one a4 pdf, good quality"
# A prompt that says "pdf" on image inputs implies --op create
mochify page-*.jpg -p "convert to pdf"
mochify scan-*.png -p "one a4 pdf, good quality"
mochify shot-*.jpg -p "each image as its own pdf"
输出文件以输入文件命名:report_compressed.pdf、brochure_images.zip、document_rasterized.zip、document_pages.zip;对于 create,则命名为 <first image>.pdf(可通过 -n 覆盖)。
optimize、extract、rasterize 和 split 需要付费套餐;所有套餐(包括 Free)均可使用 create。
MCP 服务
Mochify 通过两种方式支持 MCP。两种方式都调用 api.mochify.app 上的同一引擎,编码在 RAM 中进行,原始文件会立即丢弃。两者的区别在于文件存放的位置。
托管式(mcp.mochify.app) | 本地(mochify serve) | |
|---|---|---|
| 安装 | 无需安装 | 此二进制文件 |
| 传输方式 | Streamable HTTP | stdio |
| 身份验证 | OAuth 2.0 + PKCE,通过浏览器确认一次 | mochify auth login,或匿名使用 |
| 输入 | 公共 HTTPS URL 或 base64 字节 | 磁盘上的绝对路径 |
| 输出 | files.mochify.app 上的短时有效下载 URL(约 5 分钟) | 直接写入磁盘 |
| 经过 Agent 的图像字节 | 输入为 base64 时会经过 | 不会经过 |
| 支持处理 | 图像 | 图像和 PDF |
当 Agent 无法访问文件系统时,请使用托管式,例如 Claude.ai、托管运行时,或任何处理已在网上的图像的场景。当文件位于你的计算机上时(大多数情况下都是如此),请使用本地:进入模型上下文的只有路径和字节数。
两种方式可以在同一客户端中同时运行,并使用各自独立的令牌。
托管版(无需安装)
将 https://mcp.mochify.app 注册为远程 MCP 连接器,并完成一次 OAuth 流程。无需复制或轮换 API 密钥。
- Claude.ai — 设置 → 连接器 → 添加自定义连接器
- Claude Desktop — 设置 → 连接器,或在配置中添加
"type": "http"条目 - Cursor、Windsurf、Gemini,以及任何支持远程 MCP 的客户端 — 使用相同的 URL
也可以从 Smithery 安装:
结果会以下载 URL 的形式返回,大约 5 分钟后过期;在下载或 TTL 到期前,结果会保存在内存中的临时存储区。原始文件绝不会被保存。这是唯一不完全符合零留存政策的方式 — 详见为什么我们放宽了 MCP 的零留存政策。
本地版(stdio)
先运行 mochify auth login,然后将客户端指向该二进制文件:
{
"mcpServers": {
"mochify": {
"command": "mochify",
"args": ["serve"]
}
}
}
在 macOS 上,Claude Desktop 的配置文件位于 ~/Library/Application Support/Claude/claude_desktop_config.json。之后重启客户端;服务会自动读取已保存的凭据。任何 stdio MCP 客户端都可以采用相同方式 — Cursor、Continue、Cline、Claude Code。
在 CI 中可改为设置 MOCHIFY_API_KEY,也可以完全关闭身份验证,使用匿名免费套餐。
工具
两个服务都提供相同的四种工具。区别在于文件的输入和输出方式:本地服务接收路径并将结果写入磁盘;托管服务接收 URL 或 base64,并返回短时有效的下载 URL。
| 工具 | 接收内容 | 功能 |
|---|---|---|
squish | 一张图片 | 处理图片相关的所有操作:格式转换、调整大小、裁剪、旋转、移除背景、调整亮度、清晰度、质量控制(固定、显著性引导或无损)、Web 优化、Ultra HDR 增益图。 |
pdf | 一个 PDF | optimize(缩小 PDF,不改动文本和布局)、extract(提取其中的图片并打包为 zip)、rasterize(将页面转换为图片并打包为 zip)、split(按页拆分为多个 PDF 并打包为 zip)。 |
pdf_create | 图片 | 创建 PDF,每张图片占一页,顺序与输入一致。支持 fit、a4 或 letter 页面;combine: false 会返回由单页 PDF 组成的 zip 文件。 |
check_usage | 无 | 报告本计费周期剩余的操作次数及所属套餐。需要身份验证。 |
squish 参数:file_path、type、width、height、crop、rotation、quality、smart_compress、lossless、optimize_for_web、brightness、clarity、remove_background、background、strip_metadata、hdr、output_dir、output_name。
pdf 参数:file_path、op、type、dpi、quality、max_width、min_size、output_dir。
pdf_create 参数:file_paths、page、quality、dpi、max_width、combine、output_name、output_dir。
check_usage 不接收任何参数。
每个工具都会自行读写文件系统,因此 Agent 无需加载图片即可对其进行处理。响应会包含保存后的路径以及 API 返回的相关信息:PDF 缩小了多少、增益图是否保留、无损请求是否不得不改用有损处理,以及剩余配额。
使用方法
用自然语言描述你的需求,并提供文件的完整路径:
“将
/Users/me/Desktop/photo.jpg转换为宽度为 1000px 的 AVIF”
“将
/Users/me/projects/blog/images/中的所有 JPEG 压缩为 WebP,并保存到/Users/me/projects/blog/compressed/”
“针对 eBay 优化
/Users/me/Desktop/product.jpg”
“移除
/Users/me/Desktop/shirt.png的背景,并保存为 WebP”
“压缩
/Users/me/Desktop/report.pdf— 它太大了,无法通过邮件发送”
“以 200 DPI 将
/Users/me/Desktop/report.pdf栅格化为 PNG”
“将
/Users/me/Desktop/sunset.jpg转换为 HDR”
“稍微提亮
/Users/me/Desktop/dim.jpg,并针对我的网站进行优化”
“将
/Users/me/Desktop/receipts/中的扫描件合并为一个 A4 PDF”
API
由 https://api.mochify.app 提供支持:图片使用 /v1/squish,PDF 优化、提取、栅格化和拆分使用 /v1/pdf。文件仅在 RAM 中处理,绝不会写入磁盘。
| 套餐 | 每月操作数 | 每批文件数 | 文件大小上限 |
|---|---|---|---|
| 免费(无需账户) | 每批 3 次 | 3 | 20 MB |
| 免费(需账户) | 25 次 | 3 | 20 MB |
| Day Pass(一次性支付 $2) | 100 次,有效期 24 小时 | 25 | 75 MB |
| Seller($7.99/月) | 300 次 | 25 | 75 MB |
| Pro($24.99/月) | 1,200 次 | 25 | 75 MB |
| Growth($79.99/月) | 5,000 次 | 25 | 75 MB |
一次操作对应一张输出图片。压缩、转换、调整大小并旋转同一个文件,仍只算一次操作;若要求生成两种格式、每种格式两种尺寸,则算四次。PDF 的 optimize、extract、rasterize 和 split 需要付费套餐(Day Pass 也算);create 则适用于所有套餐,包括免费套餐。
访问 mochify.app 查看网页界面、定价和 API 文档。
常见问题
欢迎在 GitHub Discussions 中提问——在那里给出的答复可以一直搜索到,而支持邮件往来则不行。Bug 和功能请求请提交到 Issues。账户或账单相关事宜,请发送邮件至 [email protected]。
已在官方 MCP Registry 中列出,mcp-name: app.mochify/mochify。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。