Skip to main content
Glama

ApiFlash MCP by usefulapi

Capture a website screenshot

apiflash_capture_screenshot

Capture a screenshot of a public web page with ApiFlash's headless Chrome and return it as an image (up to 4 MB; a larger one comes back as a link only) together with ApiFlash's cache link. The link needs your own ApiFlash access key to open, so it is an identifier, not a shareable URL. USES YOUR APIFLASH QUOTA: each successful new capture counts as one screenshot of your monthly plan (a repeat with identical options inside ttl seconds comes from ApiFlash's cache and is free; fresh=true always counts). Options cover format, viewport size, full page, wait conditions, element or area capture, scale factor, ad / cookie-banner / tracker blocking, language, time zone and caching. Optionally also extract the page's HTML and text files (cache links returned; use apiflash_extract_page_content to read the text). Remaining quota is included. GET /urltoimage?response_type=json.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ttlNoSeconds the screenshot stays cached (default 86400, max 30 days). Identical calls within ttl are free.
urlYesPublic page to capture, a full http:// or https:// address (a public domain name; IP addresses, internal hosts and credentials are refused).
cropNoCapture an area: left,top,width,height in pixels, e.g. 10,20,50,100.
delayNoExtra seconds to wait after load, 0 to 10. Prefer wait_for or wait_until.
freshNoForce a new capture instead of the cached one (always uses quota).
widthNoViewport width in pixels (default 1920). width x height must not exceed 33,177,600.
formatNoImage format (default jpeg). webp is limited to 16350 px per side after scale_factor.
heightNoViewport height in pixels (default 1080). Ignored with full_page.
no_adsNoBlock ads.
elementNoCSS selector: capture only the first matching element (ignored with full_page).
qualityNoImage quality 0-100 for jpeg and webp (default 80).
wait_forNoCSS selector to wait for before capturing (the capture fails after 15 s if it never appears).
full_pageNoCapture the entire page, not just the viewport (default false).
time_zoneNoTime zone, a tz database name such as Europe/Paris.
user_agentNoUser-Agent header to emulate a device.
wait_untilNoWhen the page counts as loaded: dom_loaded, page_loaded or network_idle (default).
no_trackingNoBlock tracking scripts so the capture does not count as a page view.
scroll_pageNoScroll the whole page first to trigger lazy-loaded images and animations (default false).
transparentNoTransparent background; png only, and the page body must be transparent.
extract_htmlNoAlso extract the page HTML; the reply gets an extracted_html_url link.
extract_textNoAlso extract the page text; the reply gets an extracted_text_url link.
scale_factorNoDevice scale factor: 1 (default) or 2 (retina, larger file).
fail_on_statusNoHTTP status codes of the page (comma list, ranges with -, e.g. 400,404,500-511) that make the call fail instead of capturing an error page.
accept_languageNoAccept-Language header for the page, e.g. fr-FR.
thumbnail_widthNoAlso resize to this width in pixels, keeping the aspect ratio (ignored with full_page).
no_cookie_bannersNoHide cookie banners and popups.
wait_until_timeoutNoSeconds to wait for wait_until before capturing anyway (default 30, max 30).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations (readOnlyHint=false, openWorldHint=true, idempotentHint=false), disclosing quota accounting per capture, the cache/free-replay rule, the 4 MB image cap with link fallback, and that the returned cache link requires the user's own access key and is therefore not shareable. These are operationally decisive facts an agent could not infer from annotations.

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

Conciseness4/5

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

Front-loaded with purpose and return behavior, then quota, then options, then the endpoint. Dense but every sentence carries information; the enumerated option list is the only slightly expendable portion.

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

Completeness5/5

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

For a 27-parameter, no-output-schema capture tool, the description covers the essentials an agent needs: return form and size limits, link semantics, quota impact, caching behavior, and the sibling for text extraction.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 27 parameters including ttl, fresh, and the extract_* link outputs. The description's option inventory (format, viewport, wait conditions, etc.) largely restates what the schema says, adding only light grouping rather than new parameter meaning.

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

Purpose5/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') and specifies the underlying engine (ApiFlash headless Chrome) and return type (image up to 4 MB, or a link for larger). It also distinguishes itself from the sibling by naming apiflash_extract_page_content for reading extracted text.

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

Usage Guidelines4/5

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

Gives concrete usage conditions around quota and caching (identical options within ttl are free, fresh=true always counts) and explicitly routes text reading to apiflash_extract_page_content. It does not, however, state when-not to use this tool or contrast it with apiflash_get_quota.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.