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
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 |
TDQS
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 |
TDQS
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 |
TDQS
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) |
TDQS
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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
4 tool updates
- Changed
batch_screenshot2 fields changed- added
Input schema / properties / ignore_https_errorsAdded value: +{ + "description": "Ignore HTTPS/TLS certificate errors", + "type": "boolean" +} - added
Input schema / properties / wait_untilAdded value: +{ + "description": "Page load strategy (default: domcontentloaded). Use \"networkidle\" for SPAs.", + "enum": [ + "commit", + "domcontentloaded", + "load", + "networkidle" + ], + "type": "string" +}
- Changed
generate_pdf2 fields changed- added
Input schema / properties / ignore_https_errorsAdded value: +{ + "description": "Ignore HTTPS/TLS certificate errors", + "type": "boolean" +} - added
Input schema / properties / wait_untilAdded value: +{ + "description": "Page load strategy (default: domcontentloaded). Use \"networkidle\" for SPAs.", + "enum": [ + "commit", + "domcontentloaded", + "load", + "networkidle" + ], + "type": "string" +}
- Changed
render_html2 fields changed- added
Input schema / properties / ignore_https_errorsAdded value: +{ + "description": "Ignore HTTPS/TLS certificate errors", + "type": "boolean" +} - added
Input schema / properties / wait_untilAdded value: +{ + "description": "Content load strategy (default: domcontentloaded). Use \"networkidle\" for content with external resources.", + "enum": [ + "commit", + "domcontentloaded", + "load", + "networkidle" + ], + "type": "string" +}
- Changed
take_screenshot2 fields changed- added
Input schema / properties / ignore_https_errorsAdded value: +{ + "description": "Ignore HTTPS/TLS certificate errors (useful for dev/staging environments with self-signed certs)", + "type": "boolean" +} - added
Input schema / properties / wait_untilAdded value: +{ + "description": "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)", + "enum": [ + "commit", + "domcontentloaded", + "load", + "networkidle" + ], + "type": "string" +}
4 tool updates
- Changed
batch_screenshot3 fields changed- added
Input schema / properties / disable_javascriptAdded value: +{ + "description": "Disable JavaScript execution on the page", + "type": "boolean" +} - added
Input schema / properties / latitudeAdded value: +{ + "description": "Geolocation latitude (-90 to 90)", + "maximum": 90, + "minimum": -90, + "type": "number" +} - added
Input schema / properties / longitudeAdded value: +{ + "description": "Geolocation longitude (-180 to 180)", + "maximum": 180, + "minimum": -180, + "type": "number" +}
- Changed
generate_pdf3 fields changed- added
Input schema / properties / disable_javascriptAdded value: +{ + "description": "Disable JavaScript execution on the page", + "type": "boolean" +} - added
Input schema / properties / latitudeAdded value: +{ + "description": "Geolocation latitude (-90 to 90)", + "maximum": 90, + "minimum": -90, + "type": "number" +} - added
Input schema / properties / longitudeAdded value: +{ + "description": "Geolocation longitude (-180 to 180)", + "maximum": 180, + "minimum": -180, + "type": "number" +}
- Changed
render_html1 field changed- added
Input schema / properties / disable_javascriptAdded value: +{ + "description": "Disable JavaScript execution on the page", + "type": "boolean" +}
- Changed
take_screenshot3 fields changed- added
Input schema / properties / disable_javascriptAdded value: +{ + "description": "Disable JavaScript execution on the page. Useful for security research, capturing static HTML, or avoiding JS-driven redirects.", + "type": "boolean" +} - added
Input schema / properties / latitudeAdded value: +{ + "description": "Geolocation latitude (-90 to 90). Must be used with longitude.", + "maximum": 90, + "minimum": -90, + "type": "number" +} - added
Input schema / properties / longitudeAdded value: +{ + "description": "Geolocation longitude (-180 to 180). Must be used with latitude.", + "maximum": 180, + "minimum": -180, + "type": "number" +}
4 tool updates
- Changed
batch_screenshot2 fields changed- added
Input schema / properties / localeAdded value: +{ + "description": "BCP 47 locale tag for the browser context (e.g., \"en-US\")", + "type": "string" +} - added
Input schema / properties / timezoneAdded value: +{ + "description": "IANA timezone for the browser context (e.g., \"America/New_York\")", + "type": "string" +}
- Changed
generate_pdf2 fields changed- added
Input schema / properties / localeAdded value: +{ + "description": "BCP 47 locale tag for the browser context (e.g., \"en-US\")", + "type": "string" +} - added
Input schema / properties / timezoneAdded value: +{ + "description": "IANA timezone for the browser context (e.g., \"America/New_York\")", + "type": "string" +}
- Changed
render_html2 fields changed- added
Input schema / properties / localeAdded value: +{ + "description": "BCP 47 locale tag for the browser context (e.g., \"en-US\")", + "type": "string" +} - added
Input schema / properties / timezoneAdded value: +{ + "description": "IANA timezone for the browser context (e.g., \"America/New_York\")", + "type": "string" +}
- Changed
take_screenshot2 fields changed- added
Input schema / properties / localeAdded value: +{ + "description": "BCP 47 locale tag for the browser context (e.g., \"en-US\", \"de-DE\", \"ja-JP\")", + "type": "string" +} - added
Input schema / properties / timezoneAdded value: +{ + "description": "IANA timezone for the browser context (e.g., \"America/New_York\", \"Europe/Berlin\", \"Asia/Tokyo\")", + "type": "string" +}
3 tool updates
- Changed
generate_pdf1 field changed- added
Input schema / properties / evaluateAdded value: +{ + "description": "JavaScript code to execute on the page before PDF generation (max 10KB). Runs in the browser context.", + "type": "string" +}
- Changed
render_html1 field changed- added
Input schema / properties / evaluateAdded value: +{ + "description": "JavaScript code to execute on the page before capture (max 10KB). Runs in the browser context.", + "type": "string" +}
- Changed
take_screenshot5 fields changed- added
Input schema / properties / clip_heightAdded value: +{ + "description": "Clip region height in pixels", + "minimum": 1, + "type": "number" +} - added
Input schema / properties / clip_widthAdded value: +{ + "description": "Clip region width in pixels", + "minimum": 1, + "type": "number" +} - added
Input schema / properties / clip_xAdded value: +{ + "description": "Clip region X offset in pixels", + "minimum": 0, + "type": "number" +} - added
Input schema / properties / clip_yAdded value: +{ + "description": "Clip region Y offset in pixels", + "minimum": 0, + "type": "number" +} - added
Input schema / properties / evaluateAdded value: +{ + "description": "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.", + "type": "string" +}
2 tool updates
- Changed
generate_pdf2 fields changed- added
Input schema / properties / cookiesAdded value: +{ + "description": "Cookies to set before capture (e.g., [{\"name\": \"session\", \"value\": \"abc123\"}])", + "items": { + "additionalProperties": false, + "properties": { + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" + }, + "type": "array" +} - added
Input schema / properties / headersAdded value: +{ + "additionalProperties": { + "type": "string" + }, + "description": "Custom HTTP headers to send with the request (e.g., {\"Authorization\": \"Bearer token\"})", + "type": "object" +}
- Changed
take_screenshot2 fields changed- added
Input schema / properties / cookiesAdded value: +{ + "description": "Cookies to set before capture (e.g., [{\"name\": \"session\", \"value\": \"abc123\"}])", + "items": { + "additionalProperties": false, + "properties": { + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" + }, + "type": "array" +} - added
Input schema / properties / headersAdded value: +{ + "additionalProperties": { + "type": "string" + }, + "description": "Custom HTTP headers to send with the request (e.g., {\"Authorization\": \"Bearer token\"})", + "type": "object" +}
2 tool updates
- Added
generate_pdf - Changed
take_screenshot3 fields changed- added
Input schema / properties / hide_bannersAdded value: +{ + "description": "Dismiss cookie banners, consent popups, and overlays before capture", + "type": "boolean" +} - added
Input schema / properties / resize_heightAdded value: +{ + "description": "Resize output image to this height (maintains aspect ratio)", + "maximum": 2160, + "minimum": 16, + "type": "number" +} - added
Input schema / properties / resize_widthAdded value: +{ + "description": "Resize output image to this width (maintains aspect ratio)", + "maximum": 3840, + "minimum": 16, + "type": "number" +}
2 tool updates
- Added
batch_screenshot - Added
render_html
1 tool update
- First observed
take_screenshot
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
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
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
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 Connectors
Screenshot any website with one API call PNG, JPEG, WebP, or PDF. Custom viewports, device emulation, ad blocking, dark mode, and smart caching.
- GrabbitOAuthlive.grabbit
Screenshot any URL as a hosted image. No local browser; handles bot walls and full-page captures.
Free HTML/URL to PDF conversion API. Convert HTML content or any URL to high-quality PDF documents. No API keys required.
Generate images and PDFs from HTML/CSS, live websites, and reusable templates.
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.11737MIT
- 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.3871MIT
- AlicenseNot gradedqualityDmaintenanceProvides 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
- AlicenseNot gradedqualityBmaintenanceCaptures full-page screenshots and PDFs from any URL using Chromium rendering, with pay-per-call via x402 micropayments.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
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.