PageShot
Server Details
Free screenshot and webpage capture API. Capture full-page screenshots, specific elements, or PDF snapshots of any URL. No API keys required.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 3.6/5 across 4 of 4 tools scored.
take_screenshot and batch_screenshot both capture screenshots, but batch_screenshot handles multiple URLs while take_screenshot handles a single page, making them distinct enough. render_html and generate_pdf are clearly separate (image vs. PDF, HTML input vs. URL/HTML). Minor confusion possible between the two screenshot tools.
Three tools follow the verb_noun pattern (take_screenshot, generate_pdf, render_html), but batch_screenshot breaks the pattern by leading with an adjective/noun rather than a verb. The inconsistency is minor and the names remain readable.
Four tools is well-scoped for a page capture server. Each tool covers a distinct use case: single screenshot, batch screenshot, HTML rendering to image, and PDF generation. No redundancy or excessive bloat.
The set covers core web capture needs: single page screenshots, batch captures, HTML/CSS to image, and PDF conversion. Minor gaps include no explicit full-page screenshot option or advanced viewport control, but common workflows are supported.
Available Tools
4 toolsbatch_screenshotAInspect
Capture screenshots of multiple URLs in a single request. Returns base64-encoded images. Maximum 5 URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | Array of URLs to screenshot (max 5) | |
| width | No | Viewport width (default: 1280) | |
| format | No | Image format (default: png) | |
| height | No | Viewport height (default: 720) | |
| locale | No | BCP 47 locale tag for the browser context (e.g., "en-US") | |
| latitude | No | Geolocation latitude (-90 to 90) | |
| timezone | No | IANA timezone for the browser context (e.g., "America/New_York") | |
| dark_mode | No | Enable dark mode emulation | |
| full_page | No | Capture full page scroll height | |
| longitude | No | Geolocation longitude (-180 to 180) | |
| wait_until | No | Page load strategy (default: domcontentloaded). Use "networkidle" for SPAs. | |
| disable_javascript | No | Disable JavaScript execution on the page | |
| ignore_https_errors | No | Ignore HTTPS/TLS certificate errors |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the output format (base64-encoded images) and the 5-URL limit, but does not mention error handling, partial failures, or side effects (e.g., network activity). This is minimal but better than no disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no filler. The action, output format, and key constraint are front-loaded, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 13 parameters and no output schema, the description should specify the return structure (e.g., array of base64 strings mapped to URLs) and clarify behavior if some URLs fail. It only says 'returns base64-encoded images', which is ambiguous for a batch operation. The rich schema covers parameters, but return/error handling is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with every parameter having a description including defaults and constraints. The tool description adds no extra parameter details beyond what the schema already provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool captures screenshots of multiple URLs in a single request, distinguishing it from single-screenshot or PDF-generation siblings. The verb 'capture screenshots' plus the resource 'multiple URLs' makes the purpose explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is for batch scenarios ('multiple URLs', 'single request', 'Maximum 5 URLs') but does not explicitly compare to take_screenshot or other alternatives. No exclusions or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_pdfAInspect
Convert a webpage URL or raw HTML to a PDF document. Supports page size, orientation, margins, and background printing. Returns PDF as base64.
| Name | Required | Description | Default |
|---|---|---|---|
| css | No | Custom CSS to inject before PDF generation | |
| url | No | URL to convert to PDF (provide url OR html, not both) | |
| html | No | Raw HTML to convert to PDF (provide html OR url, not both) | |
| locale | No | BCP 47 locale tag for the browser context (e.g., "en-US") | |
| cookies | No | Cookies to set before capture (e.g., [{"name": "session", "value": "abc123"}]) | |
| headers | No | Custom HTTP headers to send with the request (e.g., {"Authorization": "Bearer token"}) | |
| evaluate | No | JavaScript code to execute on the page before PDF generation (max 10KB). Runs in the browser context. | |
| latitude | No | Geolocation latitude (-90 to 90) | |
| timezone | No | IANA timezone for the browser context (e.g., "America/New_York") | |
| block_ads | No | Block ads and trackers | |
| dark_mode | No | Enable dark mode emulation | |
| landscape | No | Landscape orientation (default: false) | |
| longitude | No | Geolocation longitude (-180 to 180) | |
| pdf_scale | No | Content scale 0.1-2 (default: 1) | |
| pdf_format | No | Page size (default: A4) | |
| wait_until | No | Page load strategy (default: domcontentloaded). Use "networkidle" for SPAs. | |
| print_background | No | Include background colors/images (default: true) | |
| disable_javascript | No | Disable JavaScript execution on the page | |
| ignore_https_errors | No | Ignore HTTPS/TLS certificate errors |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only mentions that the tool returns a base64 PDF and supports certain options, but it does not disclose potential side effects (e.g., network fetching, JavaScript execution, headless browser usage), error conditions, or any safety considerations. This is a significant gap for a tool with 19 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise: two sentences front-load the core purpose, then list capabilities and output format. Every sentence earns its place, and there is no redundant restating of the tool name or schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (19 parameters, no output schema, no annotations), the description is too thin. It does not mention the headless browser context, execution behavior (e.g., JavaScript execution, network requests), potential performance implications, or any usage tips for advanced options like wait_until. The schema covers parameter details, but the description fails to provide a holistic overview of the tool's behavior and constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter description coverage, so the baseline is 3. The description mentions page size, orientation, margins, and background printing, which map to existing parameters but do not add new meaning or clarify usage beyond the schema. It does not explain the url/html exclusivity or any parameter interdependencies, but the schema already handles that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb "Convert" and the resource (webpage URL or raw HTML) to a PDF document, which immediately distinguishes it from sibling tools that handle screenshots or HTML rendering. It also explicitly mentions the output format (base64), making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys the tool's context: it converts web content to PDF, and indicates the accepted input types (URL or raw HTML). However, it does not explicitly mention alternatives or when to prefer this over sibling tools like take_screenshot or render_html. Still, the clarity of purpose provides enough context for an agent to decide appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_htmlAInspect
Render raw HTML/CSS to an image. Perfect for generating OG images, social cards, email previews, and dynamic content from templates. No URL needed.
| Name | Required | Description | Default |
|---|---|---|---|
| css | No | Additional CSS to inject | |
| html | Yes | Raw HTML content to render (max 2MB) | |
| width | No | Viewport width (default: 1280) | |
| format | No | Image format (default: png) | |
| height | No | Viewport height (default: 720) | |
| locale | No | BCP 47 locale tag for the browser context (e.g., "en-US") | |
| quality | No | Image quality 1-100 (default: 80) | |
| evaluate | No | JavaScript code to execute on the page before capture (max 10KB). Runs in the browser context. | |
| selector | No | CSS selector to capture specific element | |
| timezone | No | IANA timezone for the browser context (e.g., "America/New_York") | |
| dark_mode | No | Enable dark mode emulation | |
| full_page | No | Capture full page scroll height | |
| wait_until | No | Content load strategy (default: domcontentloaded). Use "networkidle" for content with external resources. | |
| device_scale | No | Device scale factor (default: 1) | |
| disable_javascript | No | Disable JavaScript execution on the page | |
| ignore_https_errors | No | Ignore HTTPS/TLS certificate errors |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must disclose behavioral traits. It clearly states it renders raw HTML/CSS and doesn't need a URL, which sets expectations. However, it does not disclose details about execution context (e.g., headless browser, loading strategies) or any constraints beyond the schema. It adds minimal behavioral context beyond what parameters already imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core function, and each sentence adds value: one defines the action, the other lists use cases and differentiation. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (16 parameters, rich schema), the description provides a high-level context and use-case guidance but doesn't elaborate on the output or advanced behaviors. However, the schema covers the parameters, so the description is sufficient for a basic understanding. It could be more complete by mentioning the image output format or that it can capture elements, but it's acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all 16 parameters are documented. The description adds no parameter-specific information, relying on the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb-resource pair: 'Render raw HTML/CSS to an image.' It further specifies scope by noting 'No URL needed' and gives concrete use cases (OG images, social cards, etc.), distinguishing it from URL-based screenshot siblings like take_screenshot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states it is 'Perfect for generating OG images, social cards, email previews, and dynamic content from templates' – explicit use cases. The phrase 'No URL needed' differentiates it from URL-based tools and implies it should be used when HTML/CSS is available directly, though it doesn't mention sibling tools by name or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
take_screenshotBInspect
Take a screenshot of any webpage. Returns a base64-encoded image.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to screenshot | |
| delay | No | Delay in ms before capture | |
| width | No | Viewport width (default: 1280) | |
| clip_x | No | Clip region X offset in pixels | |
| clip_y | No | Clip region Y offset in pixels | |
| format | No | Image format (default: png) | |
| height | No | Viewport height (default: 720) | |
| locale | No | BCP 47 locale tag for the browser context (e.g., "en-US", "de-DE", "ja-JP") | |
| cookies | No | Cookies to set before capture (e.g., [{"name": "session", "value": "abc123"}]) | |
| headers | No | Custom HTTP headers to send with the request (e.g., {"Authorization": "Bearer token"}) | |
| quality | No | Image quality 1-100 (default: 80) | |
| evaluate | No | JavaScript code to execute on the page before capture (max 10KB). Runs in the browser context via page.evaluate(). Use to dismiss modals, click buttons, or set UI state. | |
| latitude | No | Geolocation latitude (-90 to 90). Must be used with longitude. | |
| selector | No | CSS selector to capture specific element | |
| timezone | No | IANA timezone for the browser context (e.g., "America/New_York", "Europe/Berlin", "Asia/Tokyo") | |
| dark_mode | No | Enable dark mode emulation | |
| full_page | No | Capture full page scroll height | |
| longitude | No | Geolocation longitude (-180 to 180). Must be used with latitude. | |
| clip_width | No | Clip region width in pixels | |
| wait_until | No | Page load strategy: "commit" (fastest, response received), "domcontentloaded" (default, DOM ready), "load" (all resources loaded), "networkidle" (no network activity for 500ms — best for SPAs and lazy-loaded content) | |
| clip_height | No | Clip region height in pixels | |
| hide_banners | No | Dismiss cookie banners, consent popups, and overlays before capture | |
| resize_width | No | Resize output image to this width (maintains aspect ratio) | |
| resize_height | No | Resize output image to this height (maintains aspect ratio) | |
| disable_javascript | No | Disable JavaScript execution on the page. Useful for security research, capturing static HTML, or avoiding JS-driven redirects. | |
| ignore_https_errors | No | Ignore HTTPS/TLS certificate errors (useful for dev/staging environments with self-signed certs) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the return format (base64-encoded image), which is useful. However, with no annotations provided, the description carries the full burden for behavioral disclosure. It does not mention that the tool loads a webpage, executes JavaScript, or may handle cookies, popups, or geolocation—though these are hinted at in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero padding. It front-loads the purpose and includes the essential return type, achieving maximum efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (26 parameters, no annotations, no output schema), the description is minimally adequate but lacks high-level context. It tells what the tool does and returns, but does not help the agent choose among siblings or anticipate behavior like page loading or execution context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage across all 26 parameters, so the schema does the heavy lifting. The description adds no additional parameter meaning beyond confirming a URL is required, which is already stated in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'take' and resource 'screenshot of any webpage' clearly state the tool's primary function. It is concise and unambiguous, though it does not explicitly differentiate itself from siblings like batch_screenshot or render_html.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There is no mention of scenarios, exclusions, or sibling comparison, leaving the agent to infer usage context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseAqualityBmaintenanceCapture screenshots, generate PDFs, and render HTML to images via AI agents. Supports batch capture, geo-targeting, async webhooks, and CSS/JS injection.111307MIT
- AlicenseAqualityAmaintenanceScreenshot, 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.231181MIT
- Alicense-qualityDmaintenanceProvides tools to capture pixel-perfect website screenshots as images or PDF. Supports configurable viewport, full-page capture, CSS injection, and returns either viewable images or base64-encoded content.MIT
- Alicense-qualityBmaintenanceCaptures full-page screenshots and PDFs from any URL using Chromium rendering, with pay-per-call via x402 micropayments.MIT