HTML to Image

Render HTML and CSS to PNG images over HTTP. Send HTML and CSS and get a PNG back.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
100%
Naming quality
60%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • LOWTool 'generate-image-from-html' doesn't follow camelCase/snake_casein generate-image-from-html
  • LOWTool 'screenshot-url' doesn't follow camelCase/snake_casein screenshot-url

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,000Tokens (tool definitions)
~5.4 KBTypical response size
Moderate attention impact (0.78% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "html-to-image": {
      "url": "https://app.html2img.com/mcp"
    }
  }
}

Remote endpoints

https://app.html2img.com/mcpstreamable-http

What it can do

Tool inventory

Tools (2)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡generate-image-from-html(html, css, width, height, fullpage, ...)

Render HTML and CSS into a PNG image, or into an A4 vector PDF with format "pdf". Provide complete, self-contained HTML and put styles in an inline <style> block. Remote image URLs load if they are real and publicly accessible; embed generated or local images as base64 data URIs rather than inventing URLs. Returns the rendered image plus a shareable CDN URL; PDF renders return the URL only. Consumes one credit per call.

Input Schema

{
  "type": "object",
  "properties": {
    "html": {
      "type": "string",
      "description": "The full HTML markup to render. Include CSS in an inline <style> block. Publicly accessible remote image URLs work; use base64 data URIs for images that are not hosted anywhere."
    },
    "css": {
      "type": "string",
      "description": "Optional additional CSS to inject into the page."
    },
    "width": {
      "type": "integer",
      "description": "Viewport width in pixels (1-5000). Defaults to 1920."
    },
    "height": {
      "type": "integer",
      "description": "Viewport height in pixels (1-5000). Defaults to 1080."
    },
    "fullpage": {
      "type": "boolean",
      "description": "Capture the full scrollable page instead of just the viewport."
    },
    "dpi": {
      "type": "integer",
      "description": "Scale factor / device pixel ratio (1-4) for higher-resolution output."
    },
    "ms_delay": {
      "type": "integer",
      "description": "Milliseconds to wait before capturing (1-5000), e.g. to let fonts or animations settle."
    },
    "wait_for_selector": {
      "type": "string",
      "description": "Wait until this CSS selector is present before capturing."
    },
    "format": {
      "type": "string",
      "enum": [
        "png",
        "pdf"
      ],
      "description": "Output format. \"png\" (default) returns an image sized by width and height. \"pdf\" returns an A4 portrait vector PDF with selectable, searchable text and automatic pagination; width, height, dpi and fullpage are ignored. Use \"pdf\" for documents such as invoices, reports, certificates and tickets. Use \"png\" for social cards, OG images and anything displayed at fixed pixel dimensions."
    }
  },
  "required": [
    "html"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "format": "uri",
      "description": "Shareable CDN URL of the rendered file, at full resolution."
    },
    "format": {
      "type": "string",
      "enum": [
        "png",
        "pdf"
      ],
      "description": "The output format that was rendered."
    },
    "credits_remaining": {
      "type": "integer",
      "description": "Credits left on the plan after this render."
    }
  },
  "required": [
    "url",
    "format",
    "credits_remaining"
  ]
}
⚪screenshot-url(url, css, width, height, fullpage, ...)

Capture a live web page by URL as a PNG screenshot, or as an A4 vector PDF with format "pdf". Returns the rendered image plus a shareable CDN URL; PDF renders return the URL only. Consumes one credit per call.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "The fully-qualified URL of the page to capture (https://...)."
    },
    "css": {
      "type": "string",
      "description": "Optional CSS to inject into the page before capture."
    },
    "width": {
      "type": "integer",
      "description": "Viewport width in pixels (1-5000). Defaults to 1920."
    },
    "height": {
      "type": "integer",
      "description": "Viewport height in pixels (1-5000). Defaults to 1080."
    },
    "fullpage": {
      "type": "boolean",
      "description": "Capture the full scrollable page instead of just the viewport."
    },
    "selector": {
      "type": "string",
      "description": "Capture only the element matching this CSS selector."
    },
    "dpi": {
      "type": "integer",
      "description": "Scale factor / device pixel ratio (1-4) for higher-resolution output."
    },
    "ms_delay": {
      "type": "integer",
      "description": "Milliseconds to wait before capturing (1-5000)."
    },
    "wait_for_selector": {
      "type": "string",
      "description": "Wait until this CSS selector is present before capturing."
    },
    "format": {
      "type": "string",
      "enum": [
        "png",
        "pdf"
      ],
      "description": "Output format. \"png\" (default) returns an image sized by width and height. \"pdf\" returns the page as an A4 portrait vector PDF with selectable, searchable text and automatic pagination; width, height, dpi, fullpage and selector are ignored. Use \"pdf\" to archive a page or produce a printable record. Use \"png\" for anything displayed at fixed pixel dimensions."
    }
  },
  "required": [
    "url"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "format": "uri",
      "description": "Shareable CDN URL of the rendered file, at full resolution."
    },
    "format": {
      "type": "string",
      "enum": [
        "png",
        "pdf"
      ],
      "description": "The output format that was rendered."
    },
    "credits_remaining": {
      "type": "integer",
      "description": "Credits left on the plan after this render."
    }
  },
  "required": [
    "url",
    "format",
    "credits_remaining"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded2 tools
verifiedversion not recorded2 tools