Screenshot, PDF and Open Graph image API for AI agents: capture pages, render PDFs, make OG images.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Shotkiln API key (optional; without it, small anonymous demo limits apply). Create a free key at https://shotkiln.com
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Generate a 1200x630 PNG social card (og:image) from a template and text.
Site/brand name shown on the card
Hex colour, e.g. #ff5a1f
Generate a 1200x630 PNG social card (og:image) from a template and text.
| Argument | Type | Description |
|---|---|---|
| site | string | Site/brand name shown on the card |
| theme | string | |
| title* | string | |
| accent | string | Hex colour, e.g. #ff5a1f |
| subtitle | string | |
| template | string |
{
"type": "object",
"required": [
"title"
],
"properties": {
"site": {
"type": "string",
"maxLength": 60,
"description": "Site/brand name shown on the card"
},
"theme": {
"enum": [
"light",
"dark"
],
"type": "string",
"default": "dark"
},
"title": {
"type": "string",
"maxLength": 200
},
"accent": {
"type": "string",
"description": "Hex colour, e.g. #ff5a1f"
},
"subtitle": {
"type": "string",
"maxLength": 300
},
"template": {
"enum": [
"default",
"gradient",
"split"
],
"type": "string",
"default": "default"
}
}
}Render a public web page (url) or raw HTML (html) to PDF. Returns the PDF as an embedded resource.
| Argument | Type | Description |
|---|---|---|
| url | string | |
| html | string | Raw HTML (max 1 MB); use instead of url |
| format | string | |
| margin | string | CSS length for all sides, e.g. 10mm, 0.5in |
| landscape | boolean | |
| print_background | boolean |
{
"type": "object",
"properties": {
"url": {
"type": "string"
},
"html": {
"type": "string",
"description": "Raw HTML (max 1 MB); use instead of url"
},
"format": {
"enum": [
"A3",
"A4",
"A5",
"Letter",
"Legal",
"Tabloid"
],
"type": "string",
"default": "A4"
},
"margin": {
"type": "string",
"default": "10mm",
"description": "CSS length for all sides, e.g. 10mm, 0.5in"
},
"landscape": {
"type": "boolean",
"default": false
},
"print_background": {
"type": "boolean",
"default": true
}
}
}Capture a screenshot of a public web page (http/https). Returns the image. Private/internal addresses are refused.
| Argument | Type | Description |
|---|---|---|
| url* | string | Public http(s) URL to capture |
| delay | integer | Extra wait after load, ms |
| width | integer | |
| format | string | |
| height | integer | |
| scroll | boolean | With full_page: scroll through the page first so images that load on scroll appear. Set false to skip. |
| dark_mode | boolean | |
| full_page | boolean | Capture the whole page, up to 16384 px tall |
| device_scale_factor | number |
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Public http(s) URL to capture"
},
"delay": {
"type": "integer",
"default": 0,
"maximum": 10000,
"minimum": 0,
"description": "Extra wait after load, ms"
},
"width": {
"type": "integer",
"default": 1280,
"maximum": 3840,
"minimum": 320
},
"format": {
"enum": [
"png",
"jpeg",
"webp"
],
"type": "string",
"default": "png"
},
"height": {
"type": "integer",
"default": 800,
"maximum": 3840,
"minimum": 200
},
"scroll": {
"type": "boolean",
"default": true,
"description": "With full_page: scroll through the page first so images that load on scroll appear. Set false to skip."
},
"dark_mode": {
"type": "boolean",
"default": false
},
"full_page": {
"type": "boolean",
"default": false,
"description": "Capture the whole page, up to 16384 px tall"
},
"device_scale_factor": {
"type": "number",
"default": 1,
"maximum": 3,
"minimum": 1
}
}
}