Skip to main content
Glama
short-pixel-optimizer

ShortPixel MCP Server

Official

ShortPixel MCP サーバー

ShortPixel SPIO 画像最適化を AI エージェント(Cursor、Claude Desktop、VS Code など)に公開するパブリック HTTP MCP サーバー。

アーキテクチャ

AI client (Cursor, Claude, …)
    │
    │  MCP over HTTPS (Streamable HTTP)
    ▼
https://mcp.shortpixel.com/mcp
    │
    │  user's API key in Authorization header
    ▼
ShortPixel SPIO API (api.shortpixel.com)

各リクエストはユーザー自身の ShortPixel API キーを保持します。MCP サーバーはユーザーキーを保存せず、パブリック SPIO API に転送します。

Related MCP server: img-convert MCP Server

要件

  • Node.js 20+

  • npm

インストール(サーバー)

npm ci
npm run build
cp .env.example .env

サーバー設定(ポート、許可ホスト、アップストリーム API URL)は .env を編集します。ユーザー API キーをサーバーの .env に配置しないでください。

実行

npm start

エンドポイント:

パス

メソッド

説明

/health

GET

ヘルスチェック(API キー不要)

/ping

GET

認証チェック — API キーヘッダーが存在すれば ok を返します

/mcp

POST

MCP Streamable HTTP エンドポイント

クイックテスト(curl)

サーバー起動、API キーなし:

curl http://mcp.shortpixel.com:3000/health

API キーあり(簡易チェック):

curl -i -H "Authorization: Bearer YOUR_API_KEY" http://mcp.shortpixel.com:3000/ping

TLS が nginx で設定されていない限り、ポート 3000 では http://https:// ではない)を使用します。

MCP リクエスト(重要:Streamable HTTP クライアントは JSON と SSE の両方を受け入れる必要があります):

curl -s -N -X POST http://mcp.shortpixel.com:3000/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

認証

すべての MCP リクエストでユーザーの ShortPixel API キーを送信します:

Authorization: Bearer <shortpixel_api_key>

代替ヘッダー:

X-ShortPixel-Api-Key: <shortpixel_api_key>

キーをお持ちでないユーザーは shortpixel.com で取得できます。

Cursor のセットアップ(エンドユーザー)

{
  "mcpServers": {
    "shortpixel": {
      "url": "https://mcp.shortpixel.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_SHORTPIXEL_API_KEY"
      }
    }
  }
}

開発中は URL をデプロイしたホストに置き換えてください(例:http://localhost:3000/mcp)。

サーバー環境変数

変数

必須

デフォルト

説明

PORT

いいえ

3000

HTTP リッスンポート

ALLOWED_HOSTS

いいえ

カンマ区切りの Host ヘッダー許可リスト(本番環境推奨)

SHORTPIXEL_API_URL

いいえ

https://api.shortpixel.com/v2

アップストリーム SPIO API ベース URL

SHORTPIXEL_PLUGIN_VERSION

いいえ

MCP01

SPIO に送信されるプラグインバージョン

LOG_LEVEL

いいえ

info

ログの詳細度:debuginfowarnerror

LOG_FORMAT

いいえ

text

text = 人間が読める行;json = 構造化 JSON

LOG_MCP_PROTOCOL

いいえ

true

入出力 MCP JSON-RPC ペイロードをログに記録

内部 ShortPixel 開発では、SHORTPIXEL_API_URL=https://devapi2.shortpixel.com/v2 を設定します。

リクエストログ

ログは stdout に出力されます(pm2 logs / npm start)。

デフォルト(LOG_FORMAT=text — 追跡可能なナラティブフロー:

[2026-06-30 15:01:53] [1/5] → CLIENT | HTTP POST /mcp | JSON-RPC request: "initialize" (client connects) | id: 0
           {
             "jsonrpc": "2.0",
             "method": "initialize",
             "id": 0,
             "params": { ... }
           }
[2026-06-30 15:01:53] [1/5] ← SERVER | HTTP POST /mcp 200 | JSON-RPC response: "initialize" (client connects)
[2026-06-30 15:01:53] [2/5] → CLIENT | HTTP POST /mcp | JSON-RPC request: "notifications/initialized" (session ready, no response body expected) | id: null
[2026-06-30 15:01:53] [2.5/5] → CLIENT | HTTP POST /mcp | JSON-RPC request: "tools/list" (client asks which tools exist) | id: 1
[2026-06-30 15:01:53] [2.5/5] ← SERVER | HTTP POST /mcp 200 | JSON-RPC response: "tools/list" (client asks which tools exist) | tools discovered: optimize_image_urls
[2026-06-30 15:02:18] [3/5] → CLIENT | HTTP POST /mcp | JSON-RPC request: "tools/call" (client runs a tool) | id: 2 | tool: "optimize_image_urls"
[2026-06-30 15:02:18] [4/5] MCP → SPIO API: POST reducer.php (args mapped to SPIO payload) | ...
[2026-06-30 15:02:35] [5/5] MCP ← SPIO API: Success | reduction: 27.41% | optimized: http://api.shortpixel.com/f/...-lossy.jpg | original: ...
[2026-06-30 15:02:35] [3/5] ← SERVER | HTTP POST /mcp 200 | JSON-RPC response: "tools/call" (client runs a tool) | tool: optimize_image_urls
           { "jsonrpc": "2.0", "id": 2, "result": { ... } }
[2026-06-30 15:02:35]     ✓ round-trip done (16.3s)

LOG_MCP_PROTOCOL=false にすると、高レベルのアプリログのみが保持され、MCP ペイロードダンプは非表示になります。

構造化(LOG_FORMAT=json — 1 行に 1 つの JSON オブジェクト:

イベント

タイミング

http_request

すべてのリクエスト(メソッド、パス、ステータス、期間、MCP メソッド/ツール)

spio_request

SPIO reducer.php への送信呼び出し

spio_response

SPIO 結果サマリー(ステータス、改善率 %)

mcp_auth_missing

API キーなしのリクエスト

API キーはマスクされます(****abcd)。完全なキーがログに記録されることはありません。

注記: チャットプロンプトがこのサーバーに到達することはありません。LLM(MCP クライアント内)はユーザーテキストを構造化された tools/call に変換し、サーバーは JSON-RPC 引数のみを認識して SPIO API にマッピングします。

pm2 logs shortpixel-mcp
# or
npm start

tools/list および追加の HTTP 行については LOG_LEVEL=debug を設定します。

開発サーバーへのデプロイ

cd /xxx/mcp.shortpixel.com
npm ci
npm run build
cp .env.example .env
# set ALLOWED_HOSTS and PORT, then run behind nginx with TLS
npm start

依存関係を変更するたびに package.jsonpackage-lock.json を再アップロードします。ビルドが失敗する場合は、npm ci --include=dev を実行します(一部のサーバーは NODE_ENV=production を設定し、devDependencies をスキップします)。

利用可能な MCP ツール

ツール

説明

optimize_image_urls

SPIO reducer API を介して 1 つ以上のパブリック画像 URL を最適化します

optimize_image_urls の引数:

  • urls(必須):最適化するパブリック画像 URL(最大 100)

  • lossy:圧縮レベル(0 ロスレス、1 ロッシー、2 グロッシー)

  • wait:最大待機秒数(0 は即時返却、1-30 は待機)

  • upscale:アップスケール係数(0234

  • resize:リサイズモード(0 なし、1 外側、3 内側、4 スマートクロップ)

  • resize_widthresize_height:リサイズ対象のピクセル寸法

  • cmyk2rgb:CMYK を RGB に変換(1 はい、0 いいえ)

  • keep_exif:EXIF メタデータを保持(1 保持、0 削除)

  • convertto:変換値(+webp+avif+webp|+avifwebp|avifjpgpnggif

  • bg_remove:背景削除(1、画像 URL、または #rrggbbxx

  • refresh:ソースの再取得を強制(1)またはキャッシュされた最適化データを使用(0

  • paramlist:URL ごとのオーバーライド配列(urls の長さと一致する必要があります)

  • returndatalist:応答内で変更されずにエコーバックされる任意の配列

プロジェクト構成

src/index.ts                    HTTP server entry point
src/http/auth.ts                API key extraction from requests
src/mcp/create-mcp-server.ts    Per-request MCP server factory
src/clients/spio-api-client.ts  ShortPixel SPIO HTTP client
src/tools/spio-tools.ts         MCP tools
src/http/request-log-middleware.ts HTTP request logging
src/logging/request-logger.ts    Structured JSON logger
src/logging/mcp-protocol-log.ts  MCP protocol payload capture/normalize

命名規則

種類

スタイル

ファイル

kebab-case

spio-api-client.ts

クラス

PascalCase

SpioApiClient

メソッド

camelCase

optimizeUrls

スクリプト

コマンド

説明

npm run build

TypeScript を dist/ にコンパイル

npm start

HTTP MCP サーバーを実行

npm run dev

tsx で実行(ビルドステップなし)

F
license - not found
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • SEO research, audits, backlinks, GSC, and content workflow tools for AI agents.

  • Zero-auth MCP: image optimize, cited storage/format data, and dev utilities LLMs get wrong.

  • URL intelligence for AI agents and developers. 16 tools, 25 signal weights, 20 free checks.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/short-pixel-optimizer/com.shortpixel.mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server