mcpField
T
Tinify image tools

Tinify image tools

ローカル
tinify.devメディア・デザイン012 週間前に更新

Tinify image tools について

Tinify image toolsは、Tinify.dev APIを使って画像の圧縮、サイズ変更、切り抜き、形式変換を行うMCPクライアント向けサービスです。ローカルファイル用とホスト型の接続方法があり、数値を構造化して返し、圧縮で容量が減らない場合も明示します。

主な機能

  1. 01画像の圧縮、サイズ変更、切り抜き
  2. 02PNG、JPEG、WebP、AVIFの変換
  3. 03プランと残り操作数の確認
  4. 04バイト数の構造化データ返却
  5. 05元ファイルの無断上書き防止

活用シーン

  1. 01Web画像を圧縮して削減バイト数を確認
  2. 02指定幅に画像をリサイズ
  3. 03画像をWebPまたはAVIFに変換
  4. 04月内のTinify残り操作数を確認

MCP 対応

MCP経由で、画像処理と利用状況確認の5つのツールを公開します。ローカルのstdioサーバーまたはホスト型Streamable HTTPサービスにクライアントから接続できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"dev-tinify": {
"command": "npx",
"args": [
"-y",
"@tinify-dev/mcp"
],
"env": {
"TINIFY_API_KEY": "<TINIFY_API_KEY>",
"TINIFY_BASE_URL": "<TINIFY_BASE_URL>"
}
}
}
}
起動コマンドnpx -y @tinify-dev/mcp
設定が必要な環境変数
TINIFY_API_KEYシークレットTinify.dev API key (tnf_live_* or tnf_test_*), created at https://tinify.dev/developers. Free tier: 500 operations/month.
TINIFY_BASE_URLOverride the API origin (advanced; defaults to https://api.tinify.dev).

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@tinify-dev/mcp0.1.7

ツール

5

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
pathstringはい画像の絶対パス(png、jpg、jpeg、webp、avif、最大 40 MB)。
overwritebooleanいいえ出力パスにある既存ファイルの置き換えを許可します。デフォルトは false です。
output_pathstringいいえ結果を書き込む絶対パス。デフォルト:入力ファイルの隣にある <name>.min.<ext>。output_path が元画像を指し、かつ overwrite が true でない限り、元画像が上書きされることはありません。
quality_modeenumいいえbalanced(デフォルト)、best_quality、または lossless。JPEG 入力では lossless は拒否されます。balanced | best_quality | lossless
target_size_kbintegerいいえ結果をこの KB 数値以下にすることを目指します(ベータ版;サーバーへの段階的な展開)。

詳細

@tinify-dev/mcp

Tinify.dev の画像 API 用 MCP(Model Context Protocol)サーバーです。ChatGPT、Claude、Cursor、その他の MCP クライアントから、画像の圧縮、サイズ変更、切り抜き、変換を行えます。結果は正確に伝えます。

You: compress the screenshots in ~/Desktop/launch/
Claude: 312.4 KB → 97.1 KB (-68.9%), wrote /Users/you/Desktop/launch/hero.min.png
        84.2 KB → 84.2 KB — logo.png is already as small as Tinify.dev can make it
        (optimized: false), so no file was written.
  • 節約量を偽りません — API でファイルを小さくできない場合は、バイト単位で同一の「最適化済み」コピーを書き出すのではなく、その旨を伝えます(optimized: false)。
  • 元のファイルを黙って上書きしません — 結果は入力ファイルと同じ場所に <name>.min.<ext> として保存するか、明示的に指定した output_path に保存します。ファイルを置き換えるには overwrite: true が必要です。
  • すべての呼び出しで structuredContent に数値をそのまま返すため、エージェントは文章を解析せずに計算できます。

TinyPNG とは提携していません。このサーバーは Tinify.dev API と通信します。

要件

  • Node.js >= 20
  • tinify.dev/developers の Tinify.dev API キー — 無料枠は月 500 回の操作で、カードは不要です。

セットアップ

Claude Desktop

claude_desktop_config.json に追加します(Settings → Developer → Edit Config):

{
  "mcpServers": {
    "tinify": {
      "command": "npx",
      "args": ["-y", "@tinify-dev/mcp"],
      "env": { "TINIFY_API_KEY": "tnf_live_..." }
    }
  }
}
Claude Code
claude mcp add tinify -e TINIFY_API_KEY=tnf_live_... -- npx -y @tinify-dev/mcp
Cursor

プロジェクト内に .cursor/mcp.json を作成します(グローバルに設定する場合は ~/.cursor/mcp.json):

{
  "mcpServers": {
    "tinify": {
      "command": "npx",
      "args": ["-y", "@tinify-dev/mcp"],
      "env": { "TINIFY_API_KEY": "tnf_live_..." }
    }
  }
}

リモートサーバー(ホステッド)

同じ 5 つのツールを、ホステッド型のストリーミング可能な HTTP MCP サーバーとして利用できます。インストールは不要で、ChatGPT コネクター、claude.ai ディレクトリ、URL を必要とするあらゆるレジストリーで動作します:

Endpoint:  https://api.tinify.dev/mcp
Auth:      OAuth 2.1 (PKCE + dynamic client registration), or
           Authorization: Bearer tnf_live_...   (or tnf_test_...)

認証方法は 2 つあります:

  • OAuth(コネクター向け) — ChatGPT コネクターと claude.ai ディレクトリが対応している認証方式は「OAuth」または「認証なし」のみです。サーバー URL(https://api.tinify.dev/mcp)を追加して OAuth を選択します。クライアントはサーバーの .well-known メタデータから認証エンドポイントとトークンエンドポイントを自動的に検出して自身を登録し、Tinify API キーを貼り付ける Connect Tinify ページを開きます。API キーは認証情報として保持され、クライアントが保持するのは、サーバー側でキーに対応付けられた不透明なトークンだけです。
  • 直接ベアラー認証(スクリプト/CLI 向け) — Authorization: Bearer tnf_live_...(または tnf_test_...)を送信すれば、OAuth を使わずに利用できます。従来どおりです。
ChatGPT の開発者モードで接続する
  1. ChatGPT で Settings → Security and login を開き、Developer mode を有効にします。

  2. ChatGPT Plugins を開き、プラスボタンを選択して https://api.tinify.dev/mcp を追加します。

  3. Tinify API キーを使って Connect Tinify を完了します。

  4. 会話のツールメニューから接続を追加し、PNG/JPEG/WebP/AVIF を添付して、次のように依頼します:

    Use Tinify to compress this image for the web. Show the original size,
    result size, and percentage saved.
    

ホステッドサーバーはローカルパスにアクセスできないため、各画像ツールでは次のいずれか 1 つだけを指定できます:

  • image — ChatGPT の添付ファイルオブジェクトです。記述子で openai/fileParams が宣言されているため、ChatGPT が自動的に値を設定します。
  • image_base64 — その他の MCP クライアント向けのポータブルな代替手段です。デコード後のサイズは約 28 MB が上限です。

ChatGPT の添付ファイルは HTTPS 経由でのみダウンロードされます。プライベート/予約済みネットワークの宛先とリダイレクトは拒否され、タイムアウトは 30 秒、サイズ上限は Tinify API の 40 MB です。操作が成功すると、正確なバイト数の指標と一時的な MCP 結果リンクが返されます。既存の base64 呼び出し元には、後方互換性のため structuredContent.image_base64 も返されます。get_usage はローカル版と同一です。ユーザーのファイルシステムには何も書き込まれません。

curl で試すには:

curl -s https://api.tinify.dev/mcp \
  -H "Authorization: Bearer tnf_live_..." \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"curl","version":"0"}}}'

ローカルファイルには、上記の stdio サーバーをお使いください。ファイルを直接読み書きでき、base64 への往復変換や 28 MB の上限もありません。

1 つのサーバー、2 つのトランスポートアダプター

このリポジトリは、意図的に OpenAI と Claude の両方をサポートしています。

  • 共通のツール名、Tinify クライアント、結果メトリクス、エラー、注釈は、プラットフォームに依存しません。
  • stdio アダプターは絶対ローカルパスを使用し、Claude、Cursor、Codex などのデスクトップ/CLI クライアント向けにファイルを書き込みます。
  • ホステッドアダプターは ChatGPT のファイル添付または base64 を使用し、ホステッドサーバーはユーザーのファイルシステムを読み取れないため、一時的な結果リンクを返します。

OpenAI 専用のリポジトリを作成すると、Tinify のロジックが重複し、動作に差異が生じる可能性が高まります。OpenAI 固有のディスクリプターメタデータは、ホステッドアダプターの小さな追加レイヤーとして維持します。別のリポジトリは必要ありません。

OpenAI への一般公開申請では、ポータルから提供されたドメイントークンを OPENAI_APPS_CHALLENGE_TOKEN として /etc/tinify/mcp-http.env に設定し、 deploy/nginx-location.conf にある対応する nginx ロケーションをデプロイしてください。このエンドポイントは /.well-known/openai-apps-challenge でそのトークンのみを返します。実際のポータルトークンをコミットしないでください。

ツール

ツール引数機能
compress_imagepath(絶対パス)、output_path?、quality_mode?(balanced/best_quality/lossless)、target_size_kb?(ベータ版)、overwrite?PNG/JPEG/WebP/AVIF を圧縮します。入力ファイルと同じ場所に <name>.min.<ext> を書き込みます。API が optimized: false を返した場合は、明示的な output_path を指定していない限り、何も書き込みません。
resize_imagepath、width?/height?/scale?(少なくとも 1 つ)、keep_aspect_ratio?、output_path?、overwrite?サイズを変更し、結果を書き込みます。
crop_imagepath、x、y、width、height、output_path?、overwrite?矩形に切り抜き、結果を書き込みます。
convert_imagepath、format(avif/webp/jpeg/png)、quality_mode?、output_path?、overwrite?形式を変換します(ベータ版 — エンドポイントはサーバー側で順次展開中です)。デフォルトの出力先:<name>.min.<new-ext>。
get_usage—プラン、請求期間、使用済みおよび残りのオペレーション数。

すべての画像ツールでは絶対パスが必要です(MCP サーバーは予測できない作業ディレクトリで実行されます)。また、API の40 MB制限をローカルで事前に確認します。API エラーは、サポートに問い合わせる際に伝えられるエラー code と request_id を含む、わかりやすいツールエラーとして返されます。

プロンプトの例

  • 「/Users/me/site/static/img にある PNG をすべて圧縮して」
  • 「/Users/me/photo.jpg の幅を 1200px に変更して、何バイト節約できたか教えて」
  • 「/Users/me/hero.png を最高品質で webp に変換して」
  • 「今月、Tinify のオペレーションはあといくつ使えますか?」

制限とプライバシー

  • 画像 1 枚あたり最大 40 MB/50 MP。PNG、JPEG、WebP、AVIF に対応しています。
  • アップロードされた画像と結果は、2 時間後に Tinify.dev のサーバーから削除されます。
  • サーバーは指定されたファイルのみを読み取り、書き込み先として通知した場所にのみ書き込みます。

トラブルシューティング

  • 「TINIFY_API_KEY is not set」 — サーバーは起動時に終了し、修正用の設定スニペットを正確に表示します。MCP 設定の env ブロックにキーを追加してください。
  • invalid_api_key — キーが間違っているか、無効化されています。tinify.dev/developers で新しいキーを作成してください。
  • quota_exhausted(429) — 月間クォータを使い切っています。get_usage を実行して、期間の終了日を確認してください。
  • 「path must be absolute」 — ./img.png ではなく、/Users/you/img.png のようなフルパスを指定してください。
  • ログは stderr に出力されます。Claude Desktop では ~/Library/Logs/Claude/mcp-server-tinify.log を確認してください。

ロードマップ

  • 永続バッチ API を利用したバッチツール(create/commit/wait/download)— v1 には含まれません。

ライセンス

MIT © Stian Larsen

ワンクリック/1行でのインストール

Cursor:Cursor に追加 - その後、Cursor の MCP 設定で実際のキーを設定してください。

VS Code:

code --add-mcp '{"name":"tinify","command":"npx","args":["-y","@tinify-dev/mcp"],"env":{"TINIFY_API_KEY":"tnf_live_..."}}'

Codex CLI:

codex mcp add tinify --env TINIFY_API_KEY=tnf_live_... -- npx -y @tinify-dev/mcp

または ~/.codex/config.toml に記述します:

[mcp_servers.tinify]
command = "npx"
args = ["-y", "@tinify-dev/mcp"]

[mcp_servers.tinify.env]
TINIFY_API_KEY = "tnf_live_..."

Claude Code プラグイン(MCP + 画像最適化スキル):

/plugin marketplace add Stianlars1/tinify-claude-plugin
/plugin install tinify@tinify

詳細:https://tinify.dev/mcp

コメント

MCP は初めてですか?

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

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