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
verifiedversion not recorded2 tools
verifiedversion not recorded2 tools
verifiedversion not recorded2 tools
verifiedversion not recorded2 tools