Render 1200x630 Open Graph social preview images from templates; returns a cacheable PNG URL.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional. Reserved for a future Pro key; ignored today. Works without a key.
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.
Render a 1200x630 PNG Open Graph / social-card image from a template and return its public URL (for og:image and twitter:image tags), size and ready-to-paste meta tags. Templates: blog, launch, docs, minimal, gradient. Optional inline PNG with include_image. Same engine, cache and free-tier limits as GET /api/og. Read-only (renders are cached; nothing is stored about you).
Headline, e.g. "How we cut API latency by 60%". Max 120 characters (longer text is truncated with "…").
Background hex color, e.g. 0f172a.
Text hex color.
Public https:// URL of a PNG, JPEG or SVG logo (max 512 characters, 300 KB). Fetched by OgForge's server.
Site or brand name, e.g. "example.dev". Max 60 characters (longer text is truncated with "…").
One emoji, e.g. 🚀
Small pill or tag, e.g. "Engineering". Max 40 characters (longer text is truncated with "…").
Color scheme (default depends on the template).
Accent hex color.
Author or byline. Max 60 characters (longer text is truncated with "…").
Secondary line / description. Max 200 characters (longer text is truncated with "…").
Layout (default blog).
Also return the PNG inline as MCP image content (default false; usually 30-150 KB).
Render a 1200x630 PNG Open Graph / social-card image from a template and return its public URL (for og:image and twitter:image tags), size and ready-to-paste meta tags. Templates: blog, launch, docs, minimal, gradient. Optional inline PNG with include_image. Same engine, cache and free-tier limits as GET /api/og. Read-only (renders are cached; nothing is stored about you).
| Argument | Type | Description |
|---|---|---|
| bg | string | Background hex color, e.g. 0f172a. |
| fg | string | Text hex color. |
| logo | string | Public https:// URL of a PNG, JPEG or SVG logo (max 512 characters, 300 KB). Fetched by OgForge's server. |
| site | string | Site or brand name, e.g. "example.dev". Max 60 characters (longer text is truncated with "…"). |
| emoji | string | One emoji, e.g. 🚀 |
| label | string | Small pill or tag, e.g. "Engineering". Max 40 characters (longer text is truncated with "…"). |
| theme | string | Color scheme (default depends on the template). |
| title* | string | Headline, e.g. "How we cut API latency by 60%". Max 120 characters (longer text is truncated with "…"). |
| accent | string | Accent hex color. |
| author | string | Author or byline. Max 60 characters (longer text is truncated with "…"). |
| subtitle | string | Secondary line / description. Max 200 characters (longer text is truncated with "…"). |
| template | string | Layout (default blog). |
| include_image | boolean | Also return the PNG inline as MCP image content (default false; usually 30-150 KB). |
{
"type": "object",
"required": [
"title"
],
"properties": {
"bg": {
"type": "string",
"pattern": "^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$",
"maxLength": 7,
"description": "Background hex color, e.g. 0f172a."
},
"fg": {
"type": "string",
"pattern": "^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$",
"maxLength": 7,
"description": "Text hex color."
},
"logo": {
"type": "string",
"maxLength": 512,
"description": "Public https:// URL of a PNG, JPEG or SVG logo (max 512 characters, 300 KB). Fetched by OgForge's server."
},
"site": {
"type": "string",
"maxLength": 1000,
"description": "Site or brand name, e.g. \"example.dev\". Max 60 characters (longer text is truncated with \"…\")."
},
"emoji": {
"type": "string",
"maxLength": 32,
"description": "One emoji, e.g. 🚀"
},
"label": {
"type": "string",
"maxLength": 1000,
"description": "Small pill or tag, e.g. \"Engineering\". Max 40 characters (longer text is truncated with \"…\")."
},
"theme": {
"enum": [
"light",
"dark"
],
"type": "string",
"description": "Color scheme (default depends on the template)."
},
"title": {
"type": "string",
"maxLength": 1000,
"description": "Headline, e.g. \"How we cut API latency by 60%\". Max 120 characters (longer text is truncated with \"…\")."
},
"accent": {
"type": "string",
"pattern": "^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$",
"maxLength": 7,
"description": "Accent hex color."
},
"author": {
"type": "string",
"maxLength": 1000,
"description": "Author or byline. Max 60 characters (longer text is truncated with \"…\")."
},
"subtitle": {
"type": "string",
"maxLength": 1000,
"description": "Secondary line / description. Max 200 characters (longer text is truncated with \"…\")."
},
"template": {
"enum": [
"blog",
"launch",
"docs",
"minimal",
"gradient"
],
"type": "string",
"description": "Layout (default blog)."
},
"include_image": {
"type": "boolean",
"description": "Also return the PNG inline as MCP image content (default false; usually 30-150 KB)."
}
},
"additionalProperties": false
}