Skip to main content
Glama

Shotkiln

Server Details

Screenshot, PDF and Open Graph image API for AI agents: capture pages, render PDFs, make OG images.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL

TDQS

B3.4/5.0

Scored across 3 tools

Disambiguation4/5

Each tool produces a distinct artifact type (OG PNG card, PDF, screenshot), so the boundaries are largely clear. The only mild overlap is render_pdf and take_screenshot, which both accept a public URL and return a rendered result differing only in output format.

Naming Consistency4/5

All names are snake_case verb_noun constructions (generate_og_image, render_pdf, take_screenshot), which is predictable and readable. The leading verbs vary (generate/render/take) rather than sharing one convention, but the pattern is still consistent enough to scan quickly.

Tool Count4/5

Three tools is lean but proportionate for a focused rendering service covering its three output formats. It is slightly thin, since there is no generic image/HTML rendering option, but no tool feels redundant.

Completeness4/5

The surface covers the core output types of a rendering service: social card, PDF, and screenshot. Minor gaps exist (screenshot only accepts public URLs and there's no HTML-to-image path or options for sizing/format), but these are workable around.

Available Tools

3 tools
generate_og_imageGenerate an Open Graph imageB
Read-only
Inspect

Generate a 1200x630 PNG social card (og:image) from a template and text.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoSite/brand name shown on the card
themeNodark
titleYes
accentNoHex colour, e.g. #ff5a1f
subtitleNo
templateNodefault

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and openWorldHint=false, so the safety profile is already covered by structured data. The description adds only the output format (1200x630 PNG), which is genuinely useful given there is no output schema, but says nothing about determinism, caching, hosting/URL return, or whether repeated calls reuse the same asset.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence with the output artifact and its dimensions front-loaded and zero filler. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter generator with no output schema, the description usefully pins down the produced image but leaves half the styling parameters unexplained and never states whether a URL, file path, or binary is returned. Adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% across 6 parameters, so the description carries a compensation burden it does not meet. It references 'template and text', loosely covering only template and title; site, theme, accent, and subtitle are left to the schema's bare enum/type declarations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb (generate) and a precisely specified resource: a 1200x630 PNG social card (og:image). The output format and dimensions make the artifact unambiguous, though it never distinguishes itself from render_pdf or take_screenshot, which are adjacent image-producing siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance and no mention of alternatives such as render_pdf or take_screenshot. The agent must infer from the name and the og:image reference that this is for social preview cards.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

render_pdfRender a PDFA
Read-only
Inspect

Render a public web page (url) or raw HTML (html) to PDF. Returns the PDF as an embedded resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo
htmlNoRaw HTML (max 1 MB); use instead of url
formatNoA4
marginNoCSS length for all sides, e.g. 10mm, 0.5in10mm
landscapeNo
print_backgroundNo

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, so safety is covered. The description adds two facts the annotations do not carry: the output is delivered as an embedded resource (important since there is no output schema), and only public pages are renderable, which warns an agent off authenticated URLs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, input modes stated first and the return shape second, with no filler. Every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Because there is no output schema, the embedded-resource sentence usefully covers the return value, and the public-page constraint covers access scope. However, for a 6-parameter tool with 33% description coverage, there is no guidance on page-load behavior (JS execution, timeouts) or on the rendering options, leaving meaningful gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33%, so the description should compensate but does not: format, landscape, and print_background are undocumented anywhere, and margin/format semantics are absent from the description. Only url vs html are addressed, and html's 1 MB cap lives in the schema rather than the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Render ... to PDF') with both accepted inputs, so an agent can distinguish it from take_screenshot and generate_og_image purely by the PDF output. It stops short of naming those siblings explicitly, so the differentiation is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'url or raw HTML' implies the two mutually exclusive input modes, and 'public web page' hints at a scope limit. There is no explicit when-to-use-this-vs-alternatives guidance and no statement of when-not to use it, leaving selection against the screenshot/image siblings to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

take_screenshotScreenshot a web pageB
Read-only
Inspect

Capture a screenshot of a public web page (http/https). Returns the image. Private/internal addresses are refused.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesPublic http(s) URL to capture
delayNoExtra wait after load, ms
widthNo
formatNopng
heightNo
scrollNoWith full_page: scroll through the page first so images that load on scroll appear. Set false to skip.
dark_modeNo
full_pageNoCapture the whole page, up to 16384 px tall
device_scale_factorNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint and openWorldHint, so the bar is lower, but the description still adds two genuinely useful behaviors: it returns an image (relevant because there is no output schema) and it refuses private/internal addresses, an operational/security constraint an agent must know to avoid failed calls. Failure modes, timeouts, and rate limits are still unstated, so it is not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with zero filler; the core capability, the return value, and the input restriction are each front-loaded in order of importance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter tool with no output schema and low schema description coverage, the description says almost nothing about the available controls (page size, format, full-page capture, delay) that distinguish calls. An agent can call the minimum viable form but cannot use the tool knowledgeably.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 44% across 9 parameters, yet the description mentions no parameters at all. Five parameters (width, height, format, dark_mode, device_scale_factor) are undocumented by both schema and description, so the description does not compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Capture a screenshot of a public web page") plus the accepted scheme (http/https), which is unambiguous and immediately actionable. It does not differentiate itself from its siblings render_pdf or generate_og_image, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this tool over render_pdf or generate_og_image, and no mention of prerequisites beyond the public-URL restriction. Usage is only implied by the tool name and the input constraint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedtake_screenshot2 fields changed
      • addedInput schema / properties / full_page / description
        Added value: +"Capture the whole page, up to 16384 px tall"
      • addedInput schema / properties / scroll
        Added value: +{
        +  "default": true,
        +  "description": "With full_page: scroll through the page first so images that load on scroll appear. Set false to skip.",
        +  "type": "boolean"
        +}
  2. 3 tool updates
    • First observedgenerate_og_image
    • First observedrender_pdf
    • First observedtake_screenshot

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Screenshot, visual-diff, and AI page-analysis API for AI agents. Capture any URL as PNG, JPEG, WebP, PDF, or HTML, diff two versions of a page to catch visual regressions, and get an AI summary of what a page contains.
    3
    43 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Hosted, SSRF-safe, cached screenshots and Open Graph images for AI agents - no headless Chrome to run.
    9 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Give AI agents eyes on any web page: pixel-perfect screenshots, print-ready PDFs, branded OG images, code images, and structured page extraction (JSON or Markdown).
    7
    11 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources