Skip to main content
Glama

inspect_page

Analyze web pages to generate structured maps of interactive elements, headings, forms, links, and images with unique CSS selectors for reliable automation workflows.

Instructions

Inspect a web page and get a structured map of all interactive elements, headings, forms, links, and images — each with a unique CSS selector. Use this BEFORE run_sequence or record_video to discover what elements exist on the page and get reliable selectors. Returns text (not an image), so it is fast and cheap. Costs 1 API request.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNoURL to inspect (required if no html)
htmlNoRaw HTML to inspect (required if no url)
widthNoViewport width in pixels (default: 1280)
heightNoViewport height in pixels (default: 720)
viewportDeviceNoDevice preset for viewport emulation (e.g. "iphone_14_pro"). Use list_devices to see all presets.
viewportMobileNoEnable mobile meta viewport emulation
viewportHasTouchNoEnable touch event emulation
viewportLandscapeNoLandscape orientation
deviceScaleFactorNoDevice pixel ratio (default: 1)
waitUntilNoWhen to consider navigation finished (default: networkidle2)
waitForSelectorNoWait for this CSS selector to appear before inspecting
navigationTimeoutNoNavigation timeout in ms (default: 25000)
darkModeNoEmulate dark color scheme (default: false)
reducedMotionNoEmulate prefers-reduced-motion
mediaTypeNoEmulate CSS media type
timeZoneNoOverride browser timezone
geolocationNoEmulate geolocation
userAgentNoOverride the browser User-Agent string
cookiesNoCookies to set — array of "name=value" strings or { name, value, domain? } objects
headersNoExtra HTTP headers to send with the request
authorizationNoAuthorization header value (e.g. "Bearer <token>")
bypassCSPNoBypass Content-Security-Policy on the page
hideSelectorsNoArray of CSS selectors to hide before inspecting
injectCssNoCustom CSS to inject before inspecting
injectJsNoCustom JavaScript to execute before inspecting
blockBannersNoHide cookie consent banners (default: false)
blockAdsNoBlock advertisements on the page
blockChatsNoBlock live chat widgets
blockTrackersNoBlock tracking scripts
blockRequestsNoURL patterns to block
blockResourcesNoResource types to block
Behavior4/5

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

With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it returns text (not images), is 'fast and cheap,' and has a cost implication ('Costs 1 API request'). However, it doesn't mention potential side effects, error conditions, or performance characteristics beyond speed.

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 tightly focused sentences with zero waste: first states purpose and output, second provides usage context, third discloses performance/cost characteristics. Every sentence earns its place and information is front-loaded appropriately.

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?

For a complex tool with 31 parameters and no output schema, the description does well by explaining the core purpose, usage context, and key behavioral traits. However, without annotations or output schema, it could better address what the structured map format looks like or error scenarios given the tool's complexity.

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 31 parameters thoroughly. The description adds no parameter-specific information beyond implying URL/HTML input requirements. This meets the baseline expectation when schema does the heavy lifting.

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?

The description clearly states the specific action ('inspect a web page') and output ('structured map of all interactive elements, headings, forms, links, and images — each with a unique CSS selector'). It distinguishes this tool from siblings like run_sequence or record_video by explaining its preparatory role.

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

Usage Guidelines5/5

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

The description explicitly states when to use this tool ('BEFORE run_sequence or record_video to discover what elements exist on the page and get reliable selectors') and provides a clear alternative use case (fast/cheap text output vs. image-based tools). This gives strong guidance on tool selection.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Custodia-Admin/pagebolt-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server