Developer tools
MCP server
The Instant Snap API as a hosted Model Context Protocol server, so an AI assistant can capture a page for you the way your own code would.
What it does
MCP is the open standard assistants such as Claude, Cursor, VS Code and others use to call tools. Our server runs at https://mcp.websitescreenshotworld.com/mcp and exposes Instant Snap captures as tools: once your assistant is connected, you can ask it to capture a page and it makes the API call on your account and hands you the result. There is nothing to install on a client that speaks HTTP. Nothing runs on our side that the API does not already do.
| Value | Meaning |
|---|---|
Address | https://mcp.websitescreenshotworld.com/mcp (Streamable HTTP). |
Covers | The Instant Snap API — capturing any URL on demand, as an image or a PDF, or reading its text. |
Does not cover | The Auto Schedule API. It is a single trigger route and needs no server; call it directly. |
Two ways to connect
| Value | Meaning |
|---|---|
Sign in | Add the server as a connector and sign in with your Website Screenshot World account. No key to copy. The server creates an Instant Snap API key for itself. |
API key | Create an Instant Snap API key and have the assistant send it as a header on every request. Works with any client that can set a header, and with Claude Code. |
Connect by signing in
- 1
Add the server as a connector
In your assistant, add a custom connector with the addresshttps://mcp.websitescreenshotworld.com/mcp. If it asks for an OAuth client ID, enterMcpand leave the client secret empty. - 2
Sign in and allow access
You are sent to our sign-in page. Sign in with your Website Screenshot World account and approve the access the assistant asks for. - 3
Ask for a capture
On the first capture, the server creates an Instant Snap API key for you in your workspace. It appears under Developer Tools → API Keys, on the Instant Snap API tab, named MCP connector with the date.
Who can connect this way
Disconnecting
Connect with an API key
- 1
Create an Instant Snap API key
Under Developer ToolsAPI Keys, on the Instant Snap API tab. The key starts withwsw_api_. An Auto Schedule key (wsw_autoapi_) is refused. - 2
Add the server to your assistant
Give the assistant the server address and send the key as a header on every request, either X-Api-Key: wsw_api_... or Authorization: Bearer wsw_api_.... In Claude Code that is one command; other assistants take a JSON entry. - 3
Ask for a capture
Restart the assistant if it needs it, then ask in plain words — a URL, and how you want it captured.
claude mcp add --transport http wsw https://mcp.websitescreenshotworld.com/mcp --header "X-Api-Key: wsw_api_..."{
"mcpServers": {
"website-screenshot-world": {
"type": "http",
"url": "https://mcp.websitescreenshotworld.com/mcp",
"headers": { "X-Api-Key": "wsw_api_..." }
}
}
}Exact file and field names
type or transport, differs between assistants. Each one documents how to add a remote (HTTP) MCP server with custom headers; the address and the header above are all ours needs.Give an assistant its own key rather than reusing one from production code, so you can tell its calls apart on the Instant Snap API page and revoke it on its own.
Clients that only speak stdio
Some clients can only start a local program and talk to it over standard input and output. For those, mcp-remote — a small open-source bridge run with npx, which needs Node.js — relays between the client and our server:
npx mcp-remote https://mcp.websitescreenshotworld.com/mcpPass your Instant Snap API key as a header. Keeping the key in an environment variable, with no space after the colon, avoids quoting problems on some systems:
npx mcp-remote https://mcp.websitescreenshotworld.com/mcp --header "X-Api-Key:${WSW_API_KEY}"{
"mcpServers": {
"website-screenshot-world": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.websitescreenshotworld.com/mcp",
"--header",
"X-Api-Key:${WSW_API_KEY}"
],
"env": { "WSW_API_KEY": "wsw_api_..." }
}
}
}The tools
| Value | Meaning |
|---|---|
capture_screenshot | Captures a URL as an image: format, full page or viewport, size, device, ad and pop-up blocking, Press Escape, elements to hide, proxy country. |
capture_pdf | Renders a URL as a PDF, with selectable text or as an image; takes the same blocking, Press Escape and elements-to-hide options. A PDF can take longer than the tool waits: it then answers with the capture id, the PDF goes on being made, and get_capture reads it once it is done. |
read_page | Reads a URL and returns its main content as markdown or plain text, for when the assistant needs what the page says rather than what it looks like. |
get_capture | Reads back a capture made earlier, by its id. |
list_capture_options | Lists the options and their defaults, so the assistant can build a valid request. |
Each capture result carries the capture’s details and a download link. A small image is also returned inline so the assistant can look at it; a large one is left as a link rather than filling the conversation. read_page returns the text itself.
read_page
Reads a public web page and returns its main content as markdown (or plain text with format: "text"), without navigation, ads, cookie banners or scripts. Use it when the agent needs what a page says rather than what it looks like. The page is loaded in a real browser, like a screenshot, so pages built with JavaScript work.
| Field | Type | Default | Description |
|---|---|---|---|
urlRequired | string | — | The absolute http(s) URL of the page to read. |
format | string | markdown | markdown keeps headings, lists, links and tables; text is the same content without markup. |
scroll | boolean | false | Scrolls through the page first, for pages that load more content as they are read. |
click_selector | string (CSS) | — | An element to click before reading, e.g. a “show more” or consent button. |
block_pop_ups | boolean | the plan's | Block cookie banners and pop-ups. |
proxy_country | string | — | Two-letter country code to read the page through a proxy in that country, plan permitting; list_capture_options shows what is available. |
The result starts with the capture id, the final URL after redirects and the page's HTTP status, followed by the text. The text is at most 2 MB; a longer page fails and is not charged.
One capture per call
How it is metered
Exactly like the API, because it is the API: each capture counts against your plan and its API rate limit, and appears in the Instant Snap API history — whichever way the assistant connected.
Did this page answer your question?
Tell us what is missing