mcpField
I
imgpage

imgpage

ローカル
github.com/CloudCorpRecordsメディア・デザイン02 日前に更新

imgpage について

imgpageは、HTMLから画像やPDFを生成し、ウェブページを撮影するhtml2imgサービスへのローカルブリッジです。マークアップや公開URLからレンダリング結果を得たいクライアント向けです。

主な機能

  1. 01HTMLとCSSをPNGにレンダリング
  2. 02A4ベクターPDFの生成
  3. 03URLによる公開ページの撮影
  4. 04ページ全体または要素の撮影
  5. 05共有可能なCDN URLの返却

活用シーン

  1. 01HTML文書を画像でプレビュー
  2. 02選択可能なテキストを含むPDFの生成
  3. 03公開ページまたは指定要素の撮影
  4. 04CDN URLでレンダリング結果を共有

MCP 対応

HTMLレンダリングとURLスクリーンショットの2つの上流ツールをMCPクライアントに公開します。呼び出しをhtml2imgへ転送し、結果をそのまま返します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"cloudcorprecords-imgpage": {
"command": "npx",
"args": [
"-y",
"@reneturcios/imgpage"
]
}
}
}
起動コマンドnpx -y @reneturcios/imgpage

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

パッケージ
npm@reneturcios/imgpage0.1.0
ocighcr.io/cloudcorprecords/imgpage:0.1.0

ツール

2

掲載時のツール一覧 · 2 日前に更新

パラメーター型必須説明
cssstringいいえページに追加で挿入する任意の CSS。
dpiintegerいいえ高解像度出力のための倍率/デバイスピクセル比(1-4)。
htmlstringはいレンダリングする HTML マークアップ全体。CSS はインラインの <style> ブロックに含めてください。一般公開されているリモート画像 URL を使用できます。どこにもホストされていない画像には base64 data URI を使用してください。
widthintegerいいえビューポートの幅(ピクセル単位、1-5000)。デフォルトは 1920 です。
formatenumいいえ出力形式。"png"(デフォルト)は width と height で指定したサイズの画像を返します。"pdf" は、テキストの選択と検索が可能で、自動ページ分割される A4 縦向きベクター PDF を返します。この場合、width、height、dpi、fullpage は無視されます。請求書、レポート、証明書、チケットなどの文書には "pdf" を使用してください。ソーシャルカード、OG 画像、固定ピクセル寸法で表示するものには "png" を使用してください。png | pdf
heightintegerいいえビューポートの高さ(ピクセル単位、1-5000)。デフォルトは 1080 です。
fullpagebooleanいいえビューポートだけでなく、スクロール可能なページ全体をキャプチャします。
ms_delayintegerいいえキャプチャ前の待機時間(ミリ秒、1-5000)。フォントやアニメーションが落ち着くまで待つ場合などに使用します。
wait_for_selectorstringいいえこの 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 を参照してください。

コメント

MCP は初めてですか?

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

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