Skip to main content
Glama

Screenshot a web page

screenshot_page

A real browser renders a URL (JavaScript runs, fonts load) and returns the picture as a media key: the viewport, the full page, or one element by CSS selector, on a phone or laptop viewport. Free: nothing is charged. Needs the write scope.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "url": "<url>"
    },
    "name": "screenshot_page"
  }
}

Input Schema

NameRequiredDescriptionDefault
urlYesThe absolute URL of the page to open.
selectorNoCSS selector of one element to shoot instead of the page.
viewportNoWhich screen to shoot it on. Defaults to desktop.
budgetUsdNoOptional: the most this call may spend, in dollars, default 2, max 10.
full_pageNoCapture the whole scroll height instead of the first fold.

Output Schema

NameRequiredDescriptionDefault
toolYes
mediaYes
outputNoThe tool's own result, shaped by the tool.
chargedUsdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare openWorldHint=true, destructiveHint=false, and readOnlyHint=false, but the description adds genuinely new context: a real browser executes JavaScript and loads fonts, the call requires the write scope, and nothing is charged. The stated zero cost sits slightly oddly beside an optional budgetUsd parameter (default 2, max 10), leaving the spending semantics ambiguous. It says nothing about timeouts or what happens when a selector matches nothing.

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?

Three tight sentences, front-loaded with the core capability and the return type, followed by cost and scope facts. The only friction is the repeated word 'viewport' in two different senses within the first sentence ('the viewport, the full page... on a phone or laptop viewport'), which mildly muddies an otherwise efficient lead.

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

Completeness4/5

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

An output schema exists, so return values need not be spelled out, and the description still names the return as a media key. Auth scope and cost are covered, and all capture variants are accounted for. What is missing is operational detail relevant to a browser-automation tool: page-load waiting behavior, handling of private or gated URLs, and failure modes for invalid selectors.

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 coverage is 100%, so the schema already documents all five parameters, including the mobile/desktop enum and the budget bounds. The description maps its three capture modes onto selector, viewport, and full_page, but that is largely a restatement of what the individual property descriptions say. The one useful addition is that 'free / nothing is charged' frames cost expectations, though it is not reconciled with budgetUsd.

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?

The description gives a concrete verb and resource: a real browser renders a URL and returns the picture as a media key, with three capture modes (viewport, full page, single element by CSS selector) and two device viewports. That is far more specific than a name restatement. It does not, however, contrast itself with adjacent tools such as render_thumbnail, record_page, or inspect_page_style, so an agent must infer the boundary from the resource alone.

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?

Usage is implied rather than stated: an agent can infer this is for visual capture when the HTML alone is insufficient (JavaScript runs, fonts load). There is no explicit when-to-use, when-not-to-use, or named alternative among the many sibling render/read tools. The only hard guidance is the 'Needs the write scope' prerequisite and the free-cost note.

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.