ScreenshotOne MCP Server
OfficialThis server lets AI agents capture website screenshots and extract page content using ScreenshotOne's API.
Render website screenshots with configurable options: URL, full-page capture, image quality, blocking ads/banners, and metadata content.
Return temporary screenshot URLs (valid up to 4 hours) or the image directly, with optional JSON responses containing cache URLs.
Generate full-page screenshot slices (vertical image chunks) for reliable analysis of long pages.
Include page metadata content as HTML or Markdown, with a temporary content URL and expiration time.
Extract cleaned Markdown directly from a website via the
extract-website-markdowntool.Check ScreenshotOne API quota and concurrency usage with the
get-usagetool.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ScreenshotOne MCP Servertake a screenshot of the latest news on cnn.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ScreenshotOne MCP Server
An official implementation of an MCP (Model Context Protocol) server for ScreenshotOne.
A few more words about why it was built and some thoughts about the future of MCP.
ScreenshotOne also offers an official hosted MCP server. See the ScreenshotOne MCP integration for setup instructions and the latest updates.
Tools
render-website-screenshot: Render a website screenshot and return temporary screenshot, content, and slice URLs as requested.extract-website-markdown: Render a website and return its cleaned Markdown directly as text.get-usage: Get ScreenshotOne API quota and concurrency usage.
The screenshot tool exposes these focused options:
urlblock_banners(defaults totrue)block_ads(defaults totrue)image_quality(defaults to80)full_page(defaults tofalse)full_page_slices(defaults tofalse; requiresfull_page=true)metadata_content(defaults tofalse)metadata_content_format(htmlormarkdown; requiresmetadata_content=true)
The option names and values for metadata content and full-page slices match the ScreenshotOne API. The tool does not expose response-type or cache controls; it always requests a JSON response with API caching disabled.
Set metadata_content=true and metadata_content_format=markdown to receive a temporary Markdown content URL with the screenshot. Set full_page=true and full_page_slices=true to receive smaller vertical screenshot URLs. Slices are preferred when an AI agent needs to analyze a long page that may not be handled reliably as one large image.
A successful capture returns the requested URLs as text and structured content:
{
"url": "https://<screenshotone-cache-domain>/...",
"content": {
"url": "https://<screenshotone-cache-domain>/...",
"expires": "Sun, 07 Sep 2026 12:00:00 GMT",
"format": "markdown"
},
"slices": [
{
"index": 0,
"offset_y": 0,
"width": 1280,
"height": 4000,
"url": "https://<screenshotone-cache-domain>/..."
}
]
}The URLs are temporary. The screenshot URL is available for up to four hours, while metadata content includes its exact expiration time. Download any artifact you need to keep.
extract-website-markdown accepts only url. It is a focused shortcut for ScreenshotOne's format=markdown API request and returns the resulting Markdown directly in one MCP text response. Use it when the agent needs to read or analyze page content without a screenshot.
Related MCP server: PuppeteerMCP Server
Usage
Build it
Always install dependencies and build it first:
npm install && npm run buildGet your ScreenshotOne API key
Sign up at ScreenshotOne and get your API key.
Run with npx
Run the CLI directly from the npm package without cloning the repository:
SCREENSHOTONE_API_KEY=your_api_key npx --yes @screenshotone/mcpWith Claude for Desktop
Add the following to your ~/Library/Application\ Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"screenshotone": {
"command": "npx",
"args": ["--yes", "@screenshotone/mcp"],
"env": {
"SCREENSHOTONE_API_KEY": "<your api key>"
}
}
}
}Standalone or for other projects
SCREENSHOTONE_API_KEY=your_api_key node build/index.jsLicense
ScreenshotOne MCP Server is licensed under the MIT License.
Available Tools
1 toolrender-website-screenshotB
Renders a screenshot of a website and returns it as an image or a JSON with the cache URL (preferred for full-page screenshots).
| Name | Required | Description | Default |
|---|---|---|---|
| block_ads | No | Block ads | |
| block_banners | No | Block cookie, GDPR, and other banners and popups | |
| cache | No | Cache the screenshot to get the cache URL | |
| cache_key | No | Cache key to generate a new cache URL for each screenshot, e.g. timestamp | |
| full_page | No | Render the full page screenshot of the website | |
| image_quality | No | Image quality | |
| response_type | No | Response type: JSON (when the cache URL is needed) or the image itself | by_format |
| url | Yes | URL of the website to screenshot |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the tool 'returns' outputs but doesn't describe what happens during rendering (e.g., page loading, timeout behavior, error handling), whether it's idempotent, or any rate limits. The description adds minimal context beyond the basic operation, leaving significant behavioral gaps for a tool with 8 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 a single, efficient sentence that front-loads the core purpose and key output options. It avoids redundancy and wastes no words, though it could be slightly more structured by separating purpose from usage guidance. Every part earns its place, making it highly concise.
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 (8 parameters, no output schema, no annotations), the description is minimally complete. It covers the basic operation and output types but lacks details on error conditions, performance characteristics, or example usage. Without annotations or output schema, more behavioral context would be helpful, but it's adequate for a starting point.
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 description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds marginal value by hinting at the relationship between 'full_page' and cache URL preference, but doesn't provide additional syntax, format details, or usage examples beyond what the schema specifies. This meets the baseline for high schema coverage.
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's purpose: 'Renders a screenshot of a website' with the specific verb 'renders' and resource 'website screenshot'. It distinguishes the output options (image or JSON with cache URL) but doesn't need sibling differentiation since no sibling tools exist. The purpose is specific and 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 provides implied usage guidance by mentioning 'preferred for full-page screenshots' for the cache URL option, suggesting when to choose JSON over image output. However, it lacks explicit when/when-not instructions or alternatives, and doesn't address prerequisites like network access or authentication needs. With no sibling tools, this is adequate but not comprehensive.
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.
1 tool update
v1.0.0- First observed
render-website-screenshot
TDQS
Scored across 1 tool
With only one tool, there is no possibility of ambiguity or overlap with other tools. The tool's purpose is clearly defined and distinct by default.
A single tool inherently has consistent naming, as there are no other tools to compare against. The name 'render-website-screenshot' follows a clear verb-noun pattern.
A single tool is too few for most server purposes, as it limits functionality and flexibility. While it might suffice for a minimal screenshot service, it feels thin and under-scoped for typical agent workflows.
The tool covers the core action of rendering website screenshots, but there are notable gaps such as configuration options (e.g., viewport size, quality settings) or management functions (e.g., listing cached screenshots). This could lead to agent workarounds for advanced use cases.
Maintenance
Related MCP Connectors
An MCP server that integrates with Discord to provide AI-powered features.
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
MCP server for Qwen Image 3 AI image generation
MCP server for RiverScript, an AI transcription platform - fetches transcripts shared via a link.
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server providing web development tools such as screen capturing capabilities that let AI agents take and work with screenshots of the user's screen.211 npm15MIT
- AlicenseBqualityDmaintenanceAn MCP server that enables AI assistants to capture and analyze web page screenshots using Puppeteer, supporting multi-breakpoint captures, error reporting, and page interactions.137 npm6MIT
- AlicenseBqualityBmaintenanceAn MCP server that enables capturing website screenshots with full-page, element-specific, and device-responsive capabilities through natural language commands.316 npm61MIT
- AlicenseAqualityDmaintenanceMCP server for ScreenshotFreeAPI – capture website screenshots, render HTML/PDF, and fetch app store listing screenshots from any MCP-compatible AI client.76 npmMIT