プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Vision Squeezer

作者:eralpozcanバージョン 0.9.0i★ –iパソコンで動く
レジストリ名io.github.eralpozcan/vision-squeezer

インストール

概要

作者による説明(英語の原文)

Shrink images to a token budget for vision LLM agents and pipelines. Not for chat-pasted images.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: 会計・財務・税務

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • レジストリには、入力が必要なキーは載っていません。

必要なもの

  • npmNode.jsのインストール(npxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "vision-squeezer": {
      "command": "npx",
      "args": [
        "-y",
        "vision-squeezer"
      ]
    }
  }
}

ターミナルでこれを実行します

claude mcp add vision-squeezer -- npx -y vision-squeezer

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "vision-squeezer": {
      "command": "npx",
      "args": [
        "-y",
        "vision-squeezer"
      ]
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "vision-squeezer": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "vision-squeezer"
      ]
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント eralpozcan で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

会計・財務・税務のほかのサーバーとの比較i

  • このカテゴリのほかの2911件のうち0%よりスターが多い
  • このカテゴリのほかの2911件のうち67%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの2911件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Vision Squeezerは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(0.9.0)がレジストリに届いたのは15 日前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。

代わりに使えるものは?

同じカテゴリには:Finance Toolkit, SolidInvoice, Korea Tax Calculator

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Finance Toolkit

作者:JerBouma

500+ transparent financial methods calculated from raw statements, not third-party endpoints.

パソコンでもクラウドでも★ 5,496MIT昨日更新
インストール

SolidInvoice

作者:SolidInvoice

Create and send invoices and quotes, manage clients, and track payments in SolidInvoice.

クラウドで動く★ 981MIT8 日前更新
インストール

Korea Tax Calculator

作者:UpstageAI

Korean tax calculation and tax-audit judgment MCP: 96 tools with statutory citations.

パソコンで動く★ 97MIT一昨日更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

VisionSqueezer

Fit images to a vision-LLM token budget before they reach the model. A library, CLI, and MCP server for code, agents, and pipelines.

What it does not do. VisionSqueezer cannot shrink an image you paste, drag, or @-attach into a chat window (Claude Code, Cursor, ChatGPT, and so on). The client attaches it before any tool or hook runs, so it is billed at full size.

Where it does save tokens:

- Images your code sends to a model API: the Rust crate, the Python bindings, the CLI.

- Images an agent reads from files or gets through tools (screenshots, crawlers, browser automation): the MCP server, or the Claude Code image-read hook for files inside the project.

See Where it saves tokens for the exact cases.

The MCP server runs in any MCP client (Claude Code, Cursor, Codex, Gemini CLI, and others), but it only sees images the agent passes to it.


Install

One command per client (recommended)
npx vision-squeezer install                       # asks for the client and scope

npx vision-squeezer install --client claude --scope user --yes npx vision-squeezer install --client cursor --yes

Every client has exactly one install path, and the installer picks it:

ClientWhat install does
Claude CodeInstalls the vision-squeezer-mcp plugin: MCP server, /vision-stats /vision-doctor /vision-upgrade skills, and the image-read hook
Codex CLI, Qwen Code, Kimi CLIRuns mcp add vision-squeezer -- npx -y vision-squeezer@
Gemini CLISame mcp add, plus an image-read hook in settings.json
VS CodeRuns code --add-mcp
CursorMerges one pinned entry into mcp.json, plus an image-read hook in hooks.json
OpenCodeMerges one pinned entry into opencode.json, plus an image-read plugin
Windsurf, Claude DesktopMerges one pinned entry into the client's JSON config

JSON files are merged, never replaced: other servers and hooks are kept, a file that cannot be parsed is left untouched, and re-running replaces our own entry instead of adding a second.

The scope (user, local, project) is asked only when the client supports more than one. --method from older versions is accepted and ignored.

The manual commands below use npx -y vision-squeezer for brevity. Pin it as vision-squeezer@ (the installer does this for you): an unpinned npx keeps serving whatever version it cached first, even after a new release.

Claude Code
npx vision-squeezer install --client claude --scope user --yes

This runs the two commands below for you (and removes an older claude mcp add registration and settings.json hook first). To do it by hand:

claude plugin marketplace add eralpozcan/vision-squeezer

claude plugin install vision-squeezer-mcp@vision-squeezer --scope user

Restart Claude Code, or run /reload-plugins, to load the MCP server, skills, and hook. Only want the MCP server, with no skills and no hook? claude mcp add --scope user vision-squeezer -- npx -y vision-squeezer.

Claude Desktop
npx vision-squeezer install --client claude-desktop --yes

Or add to claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\\Claude\\):

{

"mcpServers": { "vision-squeezer": { "command": "npx", "args": ["-y", "vision-squeezer"] } } }

Cursor
npx vision-squeezer install --client cursor --yes

Or add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project):

{

"mcpServers": { "vision-squeezer": { "command": "npx", "args": ["-y", "vision-squeezer"] } } }

Click here to view installation instructions for 10+ other IDEs and Agents (VS Code, JetBrains, Windsurf, Zed, etc.)

VS Code Copilot
code --add-mcp '{"name":"vision-squeezer","command":"npx","args":["-y","vision-squeezer"]}'

Or add to .vscode/mcp.json:

{

"servers": { "vision-squeezer": { "type": "stdio", "command": "npx", "args": ["-y", "vision-squeezer"] } } }

JetBrains (IntelliJ, WebStorm, PyCharm)

Open Tools → GitHub Copilot → Model Context Protocol (MCP) → Configure, then add:

{

"servers": { "vision-squeezer": { "command": "npx", "args": ["-y", "vision-squeezer"] } } }

Windsurf
npx vision-squeezer install --client windsurf --yes

Or add to ~/.codeium/windsurf/mcp_config.json:

{

"mcpServers": { "vision-squeezer": { "command": "npx", "args": ["-y", "vision-squeezer"] } } }

Gemini CLI

Google replaced Gemini CLI with Antigravity CLI for free and Google One users on 2026-06-18. On Antigravity, see Antigravity.

gemini mcp add --scope user vision-squeezer -- npx -y vision-squeezer

Or add to ~/.gemini/settings.json (user) / .gemini/settings.json (project):

{

"mcpServers": { "vision-squeezer": { "command": "npx", "args": ["-y", "vision-squeezer"] } } }

Codex CLI
codex mcp add vision-squeezer -- npx -y vision-squeezer

Or add to ~/.codex/config.toml:

[mcp_servers.vision-squeezer]

command = "npx" args = ["-y", "vision-squeezer"]

Qwen Code
qwen mcp add vision-squeezer -- npx -y vision-squeezer
OpenCode

opencode mcp add is interactive-only, so add directly to ~/.config/opencode/opencode.json (global) or opencode.json in the repo root (project):

{

"mcp": { "vision-squeezer": { "type": "local", "command": ["npx", "-y", "vision-squeezer"], "enabled": true } } }

Kimi CLI
kimi mcp add vision-squeezer -- npx -y vision-squeezer
Zed

Add to ~/.config/zed/settings.json:

{

"context_servers": { "vision-squeezer": { "command": "npx", "args": ["-y", "vision-squeezer"] } } }

Kiro

Add to .kiro/settings/mcp.json (workspace) or ~/.kiro/settings/mcp.json (global):

{

"mcpServers": { "vision-squeezer": { "command": "npx", "args": ["-y", "vision-squeezer"] } } }

Antigravity

MCP-only, no hooks needed. Configure via the Antigravity MCP settings:

{

"mcpServers": { "vision-squeezer": { "command": "npx", "args": ["-y", "vision-squeezer"] } } }

Manual install (Rust binary)
# From crates.io

cargo install vision-squeezer

Or from source

git clone https://github.com/eralpozcan/vision-squeezer && cd vision-squeezer make install # builds → ~/.local/bin/

Then use the binary path directly in any config above instead of npx:

{ "command": "vision-squeezer-mcp" }

Tip: Run npx -y vision-squeezer --setup to print ready configs with auto-detected paths.


CLI Usage

vision-squeezer path/to/image.jpg \

--mode auto|ocr|standard \ # default: auto (= standard, keeps colour; ocr is opt-in) --format jpeg|webp|avif \ # default: jpeg --quality 85 \ # output quality 1-100 (default: 75) --tile-size 256 \ # patch size in px (default: 512) --no-crop \ # disable padding removal --smart-crop \ # edge-energy crop (vs corner-tolerance) --auto-quality 0.95 \ # binary-search quality to hit SSIM target --bg-tolerance 25 \ # background detection 0-255 (default: 15) --model \ # model-aware resizing; see the model catalog --max-tokens 1600 \ # token budget: downscale until the output fits (0 = off; MCP default 1600) --max-tiles 20 \ # hard cap on tile count (model-specific unit) --json \ # machine-readable JSON output --dry-run # run pipeline, skip disk write

Batch mode

Pass a directory instead of a file:

vision-squeezer ./screenshots --recursive --output-dir ./optimized

vision-squeezer ./screenshots --recursive --json > report.json

HTTP API (n8n, Make, Zapier)

vision-squeezer serve runs a small HTTP server, so any workflow tool can squeeze an image between two steps with a plain HTTP request. No custom node is needed.

vision-squeezer serve                    # 127.0.0.1:8080

docker build -t vision-squeezer . # or run it in a container docker run -p 8080:8080 vision-squeezer

Send the image bytes as the body of POST /optimize. Options go in the query string:

ParameterDefault
modelclaudeModel alias to fit and estimate for (gpt6, gemini, ...)
max_tokens1600Token budget, 0 disables it
formatjpegjpeg, webp or avif
quality751–100
modeautoauto, ocr or standard
croptruefalse keeps the padding
responseimagejson returns the report plus the image as base64
curl --data-binary @screenshot.png "http://localhost:8080/optimize?max_tokens=1600" -o out.jpg -D -

X-Tokens-Before: 4674

X-Tokens-After: 1584

X-Input-Size: 2400x1670

X-Output-Size: 1344x924

GET /health returns ok. Bodies over 25 MB get 413, bad input gets 400 with a one-line reason. There is no authentication: the server listens on 127.0.0.1 by default, and the Docker image listens on all interfaces inside the container, so publish its port only on a network you trust.

n8n. Put an HTTP Request node between the step that fetches the image and the vision model:

  • Method POST, URL http://vision-squeezer:8080/optimize?max_tokens=1600 (the container name when both run on one Docker network, localhost otherwise).
  • Send Body on, Body Content Type n8n Binary File, Input Data Field Name data.
  • Options → Response → Response Format File, so the next node gets the optimized image as binary. Turn on Include Response Headers and Status to read the X-Tokens-* values.

These settings follow n8n's documentation and have not been tested in n8n itself yet.


The Math: How Vision Models Bill You in 2026

If you send raw images to an LLM, you are leaking tokens. Modern vision models do not care about your file size (MB/KB); they only care about pixel dimensions, but each provider calculates costs completely differently. vision-squeezer simulates these algorithms to find the mathematical minimum size that drops your token usage without losing visual context.

1. OpenAI GPT-6 / GPT-5.6 (32px Patches)

Current OpenAI vision models count 32×32 patches, fit high-detail images within a 2048px edge and 2500-patch budget, then apply a 1.2 multiplier.

  • The Fix: --model gpt6 removes padding, fits the patch budget, and avoids partially used edge patches. A 1024×1024 input is 1024 patches / 1229 tokens.
2. Claude 4.7+ (28px Patches)

Claude counts `ceil(Width/28) × ceil(Heig

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く