Back to Browse

Site Shot MCP Server

Developer ToolsModerate5.5MCP RegistryLocal
Free

Server data from the Official MCP Registry

Website screenshots for AI agents: full-page, country proxies, ad & cookie-banner removal

About

Website screenshots for AI agents: full-page, country proxies, ad & cookie-banner removal

Security Report

5.5
Moderate5.5Moderate Risk

Site-Shot MCP is a well-architected screenshot tool with strong input validation, proper error handling, and appropriate security controls. Authentication is required (API key), permissions are narrowly scoped to the stated purpose, and there are no identified malicious patterns or credential leaks. Minor code quality observations do not impact the security posture. Supply chain analysis found 3 known vulnerabilities in dependencies (0 critical, 3 high severity). Package verification found 1 issue.

7 files analyzed · 7 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

What You'll Need

Set these up before or after installing:

Site-Shot API key (the userkey). Get one at https://www.site-shot.com/pricing/Required

Environment variable: SITESHOT_API_KEY

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-site-shot-site-shot-mcp": {
      "env": {
        "SITESHOT_API_KEY": "your-siteshot-api-key-here"
      },
      "args": [
        "-y",
        "site-shot-mcp"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

Site-Shot MCP server

Give Claude, Cursor, and other AI agents the ability to see any web page — take website screenshots with Site-Shot over the Model Context Protocol.

Real Chromium rendering · full-page capture · country proxies · automatic ad & cookie-banner removal (cleaner images, fewer vision tokens).

Quick start (Claude Desktop)

  1. Get a Site-Shot API key at https://www.site-shot.com/start/.
  2. Add this to your Claude Desktop config (claude_desktop_config.json):
{
  "mcpServers": {
    "site-shot": {
      "command": "npx",
      "args": ["-y", "site-shot-mcp"],
      "env": { "SITESHOT_API_KEY": "YOUR_API_KEY" }
    }
  }
}
  1. Restart Claude Desktop. Ask it to "take a full-page screenshot of https://news.ycombinator.com" and it will call the server and show you the image.

Works the same way in any MCP client (Cursor, Cline, VS Code, LangChain, CrewAI) — point the client at npx -y site-shot-mcp with SITESHOT_API_KEY in the environment.

Tools

capture_screenshot

Screenshot a web page (viewport by default).

ParamTypeDefaultNotes
urlstring (required)Page to capture
full_pagebooleanfalseCapture the whole scrollable page
width / heightnumberAPI defaultViewport / device size
format"png" | "jpeg"pngImage format
block_adsbooleantrueRemove ads
block_cookie_bannersbooleantrueRemove cookie-consent popups
countrystringProxy country as a two-letter ISO 3166-1 alpha-2 code, e.g. "DE" (auto IP/lang/tz/geo)
strict_countrybooleantrueError out if the country has no proxy, instead of falling back to the US
language / time_zone / geolocationstringManual overrides
wait_msnumberAPI defaultExtra wait before capture (SPAs/animations)
max_heightnumber20000 (full page)Cap captured height

Returns the screenshot as an MCP image.

"API default" is not a number this package gets to state. width, height and wait_ms are forwarded only when you pass them, so whatever applies when you don't is decided by the Site-Shot API and can change without a release here. Versions up to 1.1.0 printed pixel sizes for width / height that the API does not use — an agent that omitted them to take "the default" got a different viewport, with nothing in the returned image to reveal it. Pass explicit values whenever the size matters.

Country codes are ISO codes, never names. Pass "DE", not "Germany". The API matches codes exactly and would otherwise render through a US proxy without telling you, so the server rejects full names before spending a render. strict_country (on by default) likewise turns an unavailable country into an error instead of a silent US screenshot — pass false to opt back into the fallback. Supported countries →

capture_full_page

Same as capture_screenshot with full-page capture enabled.

Why call this server instead of the agent's own browser?

If your agent drives a browser, it can screenshot pages itself — and for pages that must be signed into or stepped through a flow, that is the right tool. For public URLs, delegating the capture to this server is usually better engineering: every capture runs the same pipeline (no re-planning between runs), can be taken from a specific country with matching locale and time zone (country + strict_country), is scored by an image classifier with an escalating retry ladder behind it before being returned, and costs a fraction of a cent instead of a browser session plus vision tokens per look. The full comparison, both directions honestly argued: AI agent vs. screenshot API — who should capture the page.

Configuration

Env varRequiredDescription
SITESHOT_API_KEYyesYour Site-Shot API key (used as userkey).

The server is a thin wrapper over the existing Site-Shot HTTP API (https://api.site-shot.com/) — no separate backend.

Local development

npm install
npm run check   # syntax check
npm run smoke   # offline tests (stubbed fetch, no API key needed)
SITESHOT_API_KEY=yourkey npm start   # run the server on stdio

Requirements

Node.js ≥ 18 (uses the built-in fetch).

License

MIT

Reviews

No reviews yet

Be the first to review this server!