imgpage について
imgpageは、HTMLから画像やPDFを生成し、ウェブページを撮影するhtml2imgサービスへのローカルブリッジです。マークアップや公開URLからレンダリング結果を得たいクライアント向けです。
主な機能
- 01HTMLとCSSをPNGにレンダリング
- 02A4ベクターPDFの生成
- 03URLによる公開ページの撮影
- 04ページ全体または要素の撮影
- 05共有可能なCDN URLの返却
活用シーン
- 01HTML文書を画像でプレビュー
- 02選択可能なテキストを含むPDFの生成
- 03公開ページまたは指定要素の撮影
- 04CDN URLでレンダリング結果を共有
MCP 対応
HTMLレンダリングとURLスクリーンショットの2つの上流ツールをMCPクライアントに公開します。呼び出しをhtml2imgへ転送し、結果をそのまま返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
2掲載時のツール一覧 · 2 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| css | string | いいえ | ページに追加で挿入する任意の CSS。 |
| dpi | integer | いいえ | 高解像度出力のための倍率/デバイスピクセル比(1-4)。 |
| html | string | はい | レンダリングする HTML マークアップ全体。CSS はインラインの <style> ブロックに含めてください。一般公開されているリモート画像 URL を使用できます。どこにもホストされていない画像には base64 data URI を使用してください。 |
| width | integer | いいえ | ビューポートの幅(ピクセル単位、1-5000)。デフォルトは 1920 です。 |
| format | enum | いいえ | 出力形式。"png"(デフォルト)は width と height で指定したサイズの画像を返します。"pdf" は、テキストの選択と検索が可能で、自動ページ分割される A4 縦向きベクター PDF を返します。この場合、width、height、dpi、fullpage は無視されます。請求書、レポート、証明書、チケットなどの文書には "pdf" を使用してください。ソーシャルカード、OG 画像、固定ピクセル寸法で表示するものには "png" を使用してください。png | pdf |
| height | integer | いいえ | ビューポートの高さ(ピクセル単位、1-5000)。デフォルトは 1080 です。 |
| fullpage | boolean | いいえ | ビューポートだけでなく、スクロール可能なページ全体をキャプチャします。 |
| ms_delay | integer | いいえ | キャプチャ前の待機時間(ミリ秒、1-5000)。フォントやアニメーションが落ち着くまで待つ場合などに使用します。 |
| wait_for_selector | string | いいえ | この CSS セレクターが現れるまで待ってからキャプチャします。 |
詳細
imgpage
imgpage は、ホスト型の html2img MCP サーバーへの小規模なローカルブリッジです。マークアップやウェブページを レンダリング結果に変換します。スタイルをインラインの style ブロックに記述した 完全に自己完結した HTML ドキュメントを渡すと、指定したビューポートサイズの PNG 画像が返されます。また、pdf 形式を指定すると、テキストを選択できる A4 のベクター PDF が返されます。公開中のページのアドレスを渡すと、そのページ全体、 または指定した要素だけを PNG または PDF でスクリーンショットとして取得します。 レンダリングのたびに共有可能な CDN URL も返されます。PDF のレンダリングでは URL のみが返されます。
このパッケージ自体は何もレンダリングしません。ライブエンドポイントから取得した ツール一覧をそのままローカルで返し、各ツール呼び出しを上流に転送して、応答を 変更せずに返します。ツールは 2 つあり、取得した説明によると、呼び出しごとに 利用者自身の html2img プランのクレジットを 1 つ消費します。このパッケージでは クレジットの購入、チェックアウトの開始、アカウントへのチャージ、キーの発行は できません。以下の 2 つのレンダリング呼び出しを通じて、すでに所有している プランのクレジットを消費するだけです。
ツール
generate-image-from-html— HTML と CSS を PNG 画像にレンダリングします。また、pdf形式を指定すると、A4 のベクター PDF に レンダリングします。必須:html(完全なマークアップ。CSS はインラインの style ブロックに含めます。一般公開されているリモート画像 URL は使用できます。どこにも ホストされていない画像は、base64 の data URI として埋め込む必要があります)。 任意:css、width(1~5000、デフォルトは 1920)、height(1~5000、 デフォルトは 1080)、fullpage、dpi(1~4)、ms_delay(1~5000)、wait_for_selector、format(pngまたはpdf。pdfの場合、width、height、 dpi、fullpage は無視されます)。レンダリングした画像と共有可能な CDN URL が返されます。 PDF のレンダリングでは URL のみが返されます。呼び出しごとにクレジットを 1 つ消費します。screenshot-url— URL で指定した公開中のウェブページを、PNG のスクリーンショットとして キャプチャします。また、pdf形式を指定すると、A4 のベクター PDF にします。必須:url(ページの完全修飾 URL)。任意:css、width(1~5000、デフォルトは 1920)、height(1~5000、デフォルトは 1080)、fullpage、selector(一致する要素のみを キャプチャ)、dpi(1~4)、ms_delay(1~5000)、wait_for_selector、format(pngまたはpdf。pdfの場合、width、height、dpi、fullpage、selector は 無視されます)。レンダリングした画像と共有可能な CDN URL が返されます。PDF の レンダリングでは URL のみが返されます。呼び出しごとにクレジットを 1 つ消費します。
設定
HTML2IMG_MCP_URL(任意)— 上流エンドポイントを上書きします。デフォルトはhttps://app.html2img.com/mcpです。(この上書き用フックは、この再構築で独自に 明示した再現部分です。)HTML2IMG_API_KEY(任意)— 設定すると、すべての上流リクエストに、呼び出し元自身の html2img API キーを使ったAuthorization: Bearer <key>ヘッダーが付加されます。設定されていない場合、 キーヘッダーは送信されません。(ヘッダー名と Bearer 形式は、必須の秘密情報Authorizationヘッダーを指定する元のレジストリレコードによって確定されています。 そのレコードではパッケージの環境変数名は指定されていないため、この環境変数からキーを 転送する処理は明示的に再現したものです。元のインターフェースはキーなしで取得されました。)
転送の仕組み
最初のツール呼び出し時に、クライアントは上流とのストリーミング可能な HTTP セッションを
開きます。まず JSON-RPC の initialize リクエスト(protocolVersion 2025-03-26、
clientInfo の name は imgpage)を送り、次に notifications/initialized 通知を送り、
その後、呼び出し元の引数を変更せずに含めた tools/call リクエストを送信します。
上流が initialize に Mcp-Session-Id ヘッダーを付けて応答した場合、その値は以降の
すべてのセッションリクエストに付加され、プロセスの終了まで同じセッションが再利用されます。
応答は通常の JSON またはサーバー送信イベントとして届く場合があり、どちらも読み取ります。
上流からの成功結果は、上流が設定した isError フラグも含め、そのまま渡されます。
失敗(JSON-RPC エラー、2xx 以外のステータス、読み取れない応答、または完了できない
リクエスト)は、テキストが imgpage error: で始まる isError 結果として返されます
(このエラー表示は、この再構築で独自に明示した再現部分です)。
CLI
各ツールは、1 つの JSON 引数文字列を受け取るサブコマンドでもあります。
npx @reneturcios/imgpage generate-image-from-html '{"html":"<h1>Hello</h1>"}'
npx @reneturcios/imgpage screenshot-url '{"url":"https://example.com"}'
npx @reneturcios/imgpage --version
終了コード:成功時は 0、isError の結果の場合は 1、使用方法に誤りがある場合は 2 です。
MCP サーバー
npx -y @reneturcios/imgpage mcp
MCP クライアントの設定:
{
"mcpServers": {
"imgpage": {
"command": "npx",
"args": ["-y", "@reneturcios/imgpage", "mcp"]
}
}
}
Docker
docker run -i ghcr.io/cloudcorprecords/imgpage
docker run --rm ghcr.io/cloudcorprecords/imgpage --version
コンテナのデフォルトコマンドは mcp であるため、最初の形式では stdio MCP サーバーとして動作します。それ以外の引数は通常どおり CLI に渡されます。
開発
npm install
npm run build
npm test
npm run dev
テストスイートはすべてスタブ化された JSON-RPC アップストリームに対して実行され、実際のネットワーク呼び出しは行いません。
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。