mcpField
M
Mochify

Mochify

リモート
mochify.appメディア・デザイン12 日前に更新
リポジトリ公式サイト

Mochify について

Mochifyは、mochify.appのAPIを使ってファイルを処理する画像・PDF向けコマンドラインツール兼MCPサーバーです。画像の変換、圧縮、編集、PDF処理に対応し、ローカルstdioとホスト型HTTPの接続方式を選べます。

主な機能

  1. 01AVIF、JXL、WebPなどへの画像変換
  2. 02画像のリサイズ、切り抜き、最適化
  3. 03背景除去と画像領域のマスキング
  4. 04PDFの最適化、抽出、ラスタライズ、分割
  5. 05ローカルstdioとホスト型HTTPのMCPサーバー

活用シーン

  1. 01Web掲載用画像の一括変換
  2. 02共有前の写真のリサイズやマスキング
  3. 03テキストを保ったままPDFを縮小
  4. 04AIアシスタントに画像・PDF処理を提供

MCP 対応

`mochify serve`によるローカルstdioサーバーと、`mcp.mochify.app`のホスト型Streamable HTTPサーバーを提供します。どちらも同じ処理エンジンを使い、ローカルモードはディスク上のパス、ホスト型モードはHTTPS URLまたはbase64入力を受け取ります。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://mcp.mochify.app/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

パッケージ
cargomochify1.6.2

ツール

詳細

mochify-cli

MCP Badge License: MIT

README の画像

mochify.app 用のコマンドラインツール兼 MCP サーバーです。ネイティブ C++ エンジンを搭載した、高速でプライバシーを最優先する画像圧縮・変換 API です。

ターミナルから画像を最新フォーマット(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

アカウントがない場合は、1 バッチあたり 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-metadataEXIF/メタデータを保持します(デフォルトでは削除)
-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 件ずつ処理する場合は 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 は被写体そのものを見つけます。--region は、あなた自身、または MCP サーバーを操作する AI アシスタントが、画像のどの部分を切り抜くかすでに把握している場合に使います。

# 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

4 つの数値は x,y,width,height で、画像に対する比率(0~1)です。表示された状態の画像の左上を基準に測定され、横向きに保存されたスマートフォンの写真でも、正しい向きが基準になります。ピクセルではなく比率を使うため、画像の表示サイズが変わっても同じボックスを使えます。1 を超える値は、ほとんどの場合ピクセル単位のボックスであるため、リクエスト送信前に拒否されます。まず領域を切り抜き、その後に -w/-H、--crop、--rotation、--remove-bg が適用されます。--verbose を指定すると、実際に切り抜かれたピクセル範囲が表示されます。

MCP 経由では、アシスタントが「足元を切り抜く」「ロゴだけ」のように、内容を基準に切り抜けます。画像そのものを見てボックスを選び、Mochify には 4 つの数値だけが渡されます。

マスキング

画像を共有する前に、顔、ナンバープレート、住所などを隠します。

# 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 は、HDR ディスプレイで写真を実際のヘッドルームで表示するための Ultra HDR/ISO 21496-1 ゲインマップを制御します。

モード動作
--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 で処理内容を指定します。(1 つのコマンドで PDF と画像を混在させることはできません。別々に実行してください。)

例外は create です。入力は画像なので、処理を振り分けるための .jpg の情報はありません。--op create を指定するか、プロンプトで「pdf」と伝えてください。mochify *.jpg -p "convert to pdf" でも PDF を作成できます。

Op対象戻り値処理内容
optimizePDF.pdfPDF 内の画像を再圧縮します。テキスト、フォント、ベクター画像、レイアウトには手を加えないため、ドキュメントの検索可能な状態は保たれます。
extractPDF.zipドキュメントに配置された画像を、保存時の解像度のまま取り出します。
rasterizePDF.zipテキストも含め、すべてのページを画像にレンダリングします。
splitPDF.zipPDF をページごとに 1 ページの PDF に分割します。
create画像.pdf指定された順に、画像 1 枚につき 1 ページの PDF を作成します。
フラグ対象説明
--op <OP>すべてoptimize、extract、rasterize、split、create
-t, --type <FORMAT>rasterize、extractpng、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>createfit(デフォルト)、a4、letter
--no-combinecreate画像ごとに 1 ページの 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 の利用には有料プランが必要です。create は Free を含むすべてのプランで利用できます。

MCP サーバー

Mochify は 2 つの方法で MCP に対応しています。どちらも api.mochify.app にある同じエンジンを呼び出し、エンコードは RAM 上で行われ、元のファイルは直ちに破棄されます。異なるのはファイルの保存場所です。

ホステッド(mcp.mochify.app)ローカル(mochify serve)
インストール不要このバイナリ
トランスポートStreamable HTTPstdio
認証OAuth 2.0 + PKCE、ブラウザーでの承認 1 回mochify auth login、または匿名
入力公開 HTTPS URL、または base64 バイト列ディスク上の絶対パス
出力files.mochify.app 上の短時間有効なダウンロード URL(約 5 分)ディスクに直接書き込み
エージェント経由の画像バイト列base64 入力の場合なし
対応形式画像画像および PDF

ファイルシステムにアクセスできないエージェント(Claude.ai、ホステッドランタイム、すでにウェブ上にある画像を扱うものなど)には、ホステッドを選んでください。ファイルが手元のマシンにある場合、たいていはこちらに当たりますが、ローカルを選んでください。モデルのコンテキストに入るのはパスとバイト数だけです。

同じクライアントで両方を、独立したトークンを使って併用できます。

ホスト型(インストール不要)

https://mcp.mochify.app をリモート MCP コネクターとして登録し、OAuth フローを一度完了します。コピーやローテーションが必要な API キーはありません。

  • Claude.ai — Settings → Connectors → Add custom connector
  • Claude Desktop — Settings → Connectors、または設定ファイルに "type": "http" のエントリーを追加
  • Cursor、Windsurf、Gemini、その他リモート MCP に対応するクライアント — 同じ URL

または、Smithery からインストールできます。

smithery badge

結果は、有効期限が約 5 分のダウンロード URL として返され、取得されるか TTL が切れるまでメモリ内の取得用ストアに保持されます。元のファイルが保存されることはありません。この方法だけは、エンドツーエンドでゼロリテンションではありません。MCP のゼロリテンションを緩和した理由をご覧ください。

ローカル(stdio)

まず mochify auth login を実行してから、クライアントでバイナリを指定します。

{
  "mcpServers": {
    "mochify": {
      "command": "mochify",
      "args": ["serve"]
    }
  }
}

Claude Desktop の設定ファイルは、macOS では ~/Library/Application Support/Claude/claude_desktop_config.json にあります。その後、クライアントを再起動してください。サーバーは保存済みの認証情報を自動的に読み込みます。Cursor、Continue、Cline、Claude Code など、stdio 対応の MCP クライアントでも同じように動作します。

CI では代わりに MOCHIFY_API_KEY を設定するか、認証を完全にオフにして匿名の無料枠で実行できます。

ツール

どちらのサーバーも同じ 4 つのツールを公開します。違いはファイルの入出力方法です。ローカルサーバーはパスを受け取り、ディスクに書き込みます。ホスト型サーバーは URL または base64 を受け取り、有効期間の短いダウンロード URL を返します。

ツール入力処理
squish画像 1 枚画像に関するすべての処理を行います。形式変換、サイズ変更、切り抜き、回転、背景の削除、明るさ調整、鮮明化、品質制御(固定、顕著性ガイド付き、または可逆)、Web 向け最適化、Ultra HDR ゲインマップに対応します。
pdfPDF 1 件optimize(テキストとレイアウトはそのままで PDF を小さくします)、extract(PDF 内の画像を ZIP にします)、rasterize(ページを画像に変換して ZIP にします)、split(ページごとに PDF を作成して ZIP にします)。
pdf_create画像指定された順序で、画像 1 枚につき 1 ページの PDF を作成します。ページサイズは fit、a4、letter です。combine: false を指定すると、1 ページの 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 はパラメーターを取りません。

各ツールはファイルシステムを自ら読み書きするため、エージェントが処理のために画像を読み込む必要はありません。応答には保存先のパスと、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 を圧縮して。メールで送るには大きすぎます」

「/Users/me/Desktop/report.pdf を 200 DPI の PNG にラスタライズして」

「/Users/me/Desktop/sunset.jpg を HDR にして」

「/Users/me/Desktop/dim.jpg を少し明るくして、ウェブサイト向けに最適化して」

「/Users/me/Desktop/receipts/ 内のスキャン画像を 1 つの A4 PDF にまとめて」

API

https://api.mochify.app を利用します。画像には /v1/squish、PDF の最適化/抽出/ラスタライズ/分割/作成には /v1/pdf を使用します。ファイルは RAM 上で処理され、ディスクに書き込まれることはありません。

プラン月間操作数1 バッチあたりのファイル数最大ファイルサイズ
無料(アカウントなし)1 バッチあたり 3320 MB
無料(アカウントあり)25320 MB
デイパス(一度限り $2)100、24 時間有効2575 MB
セラー($7.99/月)3002575 MB
Pro($24.99/月)1,2002575 MB
Growth($79.99/月)5,0002575 MB

1 回の操作は出力画像 1 枚分です。同じファイルを圧縮、変換、サイズ変更、回転しても、操作数は 1 のままです。2 つのサイズで 2 つの形式を指定すると、操作数は 4 になります。PDF の optimize、extract、rasterize、split には有料プランが必要です(デイパスも対象です)。create は無料プランを含むすべてのプランで利用できます。

ウェブインターフェース、料金、API ドキュメントについては、mochify.app をご覧ください。

質問

GitHub Discussions で質問してください。サポートメールのやり取りとは異なり、回答を後から検索できます。バグ報告や機能リクエストはIssuesにお寄せください。アカウントや請求に関するお問い合わせは、[email protected] までメールでご連絡ください。

公式 MCP Registry に mcp-name: app.mochify/mochify として登録されています。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。