GUIDES
Use with AI agents (MCP)
APIScreenshot hosts a remote MCP server — point any agent at one URL with your API key and it can screenshot the web. No install, no glue code.
What it is
APIScreenshot hosts a remote MCP (Model Context Protocol) server at https://apiscreenshot.com/mcp. It speaks Streamable HTTP and authenticates with the same Authorization: Bearer sk_live_… API key as the HTTP API. Point an MCP-capable client — Claude Code, Cursor, Claude Desktop, or your own agent host — at the URL and the agent gets a native take_screenshot tool. There is nothing to install: each call forwards to POST /v1/screenshot on our edge, so the tool has the exact same capabilities, limits and credit cost as a direct API call.
Get an API key
Every connection needs a live key. Sign up (free — no credit card) and you get 100 free screenshots to start; copy a key from Dashboard → API keys. When you are ready for volume, subscribe on the pricing page. Use the key in place of sk_live_YOUR_KEY everywhere below.
Claude Code
One command registers the remote server over HTTP with your key as a header:
claude mcp add --transport http apiscreenshot \
https://apiscreenshot.com/mcp \
--header "Authorization: Bearer sk_live_YOUR_KEY"That writes the server into your Claude Code config. Then just ask Claude to "screenshot example.com" and it will call take_screenshot and show you the image.
Cursor, Claude Desktop & other clients
Any client that supports remote (Streamable HTTP) MCP servers takes a mcpServers entry pointing at the URL, with the bearer token in headers:
{
"mcpServers": {
"apiscreenshot": {
"url": "https://apiscreenshot.com/mcp",
"headers": {
"Authorization": "Bearer sk_live_YOUR_KEY"
}
}
}
}For a client that only speaks stdio (no native remote support), bridge to the same URL with the community mcp-remote proxy — still nothing of ours to install:
{
"mcpServers": {
"apiscreenshot": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://apiscreenshot.com/mcp",
"--header",
"Authorization: Bearer sk_live_YOUR_KEY"
]
}
}
}The take_screenshot tool
The server exposes a single tool, take_screenshot: capture a live website (by url) or your own inline html and get the image back. Provide exactly one of url or html. Inputs:
| Field | Type | Description |
|---|---|---|
| url | string | Absolute http(s) URL to capture. Exactly one of url or html. |
| html | string | Inline HTML to render and capture instead of navigating to a URL. |
| fullPage | boolean | Capture the full scrollable page instead of just the viewport. Default false. |
| format | enum | png (default), jpeg or webp. |
| viewport | object | Render size: width, height (required) and optional deviceScaleFactor (retina). |
| selector | string | CSS selector — capture just the first matching element instead of the page. |
Output: an MCP image content block (the captured PNG/JPEG/WebP, base64) plus a short text confirmation. On a bad request the tool returns an error message the agent can read. See the screenshot endpoint reference for every option and Errors for failure cases. Each successful capture costs one credit, billed to the account that owns the key.
Local stdio (optional)
The remote URL above is the recommended path. As an optional alternative, a local stdio MCP server (apiscreenshot-mcp, run via npx, key passed through APISCREENSHOT_API_KEY) is on the way. Note: this package is not published yet — prefer the remote URL (or the mcp-remote bridge above) for now.
{
"mcpServers": {
"apiscreenshot": {
"command": "npx",
"args": ["-y", "apiscreenshot-mcp"],
"env": { "APISCREENSHOT_API_KEY": "sk_live_YOUR_KEY" }
}
}
}