Give your AI agent a real browser camera. Shotmint runs a remote Model Context Protocol server, so Claude, Cursor, VS Code Copilot, n8n and other MCP clients can screenshot any web page or HTML and render PDFs. Nothing to install: add one URL and your API key.
Server URL: https://shotmint.creasework.com/mcp (Streamable HTTP). Auth: Authorization: Bearer YOUR_KEY, or https://shotmint.creasework.com/mcp?access_key=YOUR_KEY for clients that only take a URL. Older clients that only speak the legacy SSE transport (2024-11-05) can use https://shotmint.creasework.com/sse with the same key options.
No key yet? Get a free one (25 renders a month, no signup), or run curl -X POST https://shotmint.creasework.com/v1/keys/free. You can also connect with no key at all: the agent can call get_free_key itself and pass the key as api_key in its next tool calls, so the first screenshot works in the same chat. Save the key it returns and add it to the connection afterwards.
Add to Cursor Install in VS Code VS Code Insiders
These links add the server with no key. In your first chat the agent calls get_free_key and uses the key it gets back, so the first screenshot works right away. Save that key and add it to the config below so it stays the same.
take_screenshotCapture a screenshot of a URL or of raw HTML with a real Chromium browser and return the image. Costs 1 credit. |
render_pdfPrint a URL or raw HTML (invoices, reports) to PDF with Chromium and return the file. Costs 1 credit. |
get_screenshot_urlReturn a signed public image URL of a live website screenshot, safe to put in HTML, Markdown or emails (the key is not in it). Free to create; 1 credit each time a new image is rendered, repeats are cached and free for cache_ttl seconds (24h by default). |
check_creditsShow how many render credits this API key has left and where to top it up. |
read_pageLoad a URL in a real Chromium browser (JavaScript runs) and return its main content as clean Markdown with title, author and date: no navigation, ads or footers. A PDF link returns the text of the PDF as Markdown. Costs 1 credit. |
check_websiteFree (no credits, no key needed; 30 checks a day per IP). Check one site without a browser: SSL certificate (days to expiry, issuer, hostname match, chain, old TLS 1.0/1.1), the redirect chain from the URL you give (loops, 302s that should be 301s, no HTTPS), and security headers graded A+ to F (HSTS, CSP, nosniff, clickjacking, Referrer-Policy, Permissions-Policy) plus version leaks, compression and caching. Use take_screenshot to see the page itself. |
check_linksFree (no credits, no key needed; shares the 30 checks a day per IP with check_website). Read one page and check up to 150 of its links and images (internal first) with HEAD, re-checked with GET on errors: lists broken links (404, 410, 5xx, dead domains), timeouts, redirects and bot walls (401/403/429/999, reported as unverified, not broken). Reads the HTML as served, without running scripts. |
check_dnsFree (no credits, no key needed; shares the 30 checks a day per IP with check_website). Look up a domain's DNS records (A, AAAA, CNAME, MX, NS, TXT, CAA, SOA) and audit its email setup: SPF syntax and the 10-DNS-lookup limit (includes followed), DMARC policy (with the parent-domain fallback), 15 common DKIM selectors (wildcard answers detected), null MX. Answers come from a public resolver, so recent changes may still be cached. |
detect_techFree (no credits, no key needed; shares the 30 checks a day per IP with check_website). Fetch one page (no browser, scripts not run) and detect its CMS, framework, e-commerce platform, hosting/CDN, analytics and marketing tools from the generator tag, headers, cookie names and asset URLs, with the evidence for each and versions where the site exposes them. Bot walls (403/429) are reported, not guessed through. |
get_free_keyCreate a free Shotmint API key (25 renders a month, no signup or card) when none is configured. Pass the returned key as api_key to the other tools, or set it as the connection header "Authorization: Bearer KEY". One key per IP address per day. |
Renders run in headless Chromium with the same options as the REST API: full page, viewport size, retina, mobile, dark mode, ad and cookie-banner blocking, element selector, paper size, margins and page numbers. Long full-page screenshots come back as 2000 px JPEG tiles, top to bottom, because Claude rejects images over 8000 px and shrinks large ones until text is unreadable.
claude mcp add --transport http shotmint https://shotmint.creasework.com/mcp --header "Authorization: Bearer YOUR_KEY"
In ~/.cursor/mcp.json (or .cursor/mcp.json in a project):
{
"mcpServers": {
"shotmint": {
"url": "https://shotmint.creasework.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_KEY"
}
}
}
}
In .vscode/mcp.json. VS Code asks for the key once and stores it securely:
{
"inputs": [
{
"type": "promptString",
"id": "shotmint-key",
"description": "Shotmint API key",
"password": true
}
],
"servers": {
"shotmint": {
"type": "http",
"url": "https://shotmint.creasework.com/mcp",
"headers": {
"Authorization": "Bearer ${input:shotmint-key}"
}
}
}
}
Settings → Connectors → Add custom connector, and paste the URL with your key: https://shotmint.creasework.com/mcp?access_key=YOUR_KEY. Treat that URL like a password.
In n8n, add an MCP Client Tool to your AI Agent node, set the endpoint to https://shotmint.creasework.com/mcp, the transport to HTTP Streamable, and authentication to Bearer with your key. Any other client that speaks Streamable HTTP works the same way; if yours only offers SSE, use https://shotmint.creasework.com/sse. Clients and registries that discover servers automatically can read our MCP Server Card (SEP-2127), listed in https://shotmint.creasework.com/.well-known/ai-catalog.json.
curl -s https://shotmint.creasework.com/mcp -H "Content-Type: application/json" -H "Authorization: Bearer YOUR_KEY" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"check_credits","arguments":{}}}'
check_website, free and keyless).check_links, free and keyless).check_dns, free and keyless).detect_tech, free and keyless).get_screenshot_url; the key never appears in the URL).Same credits as the API: 1 credit per screenshot or PDF, failed renders are free, and creating signed URLs, checking credits or running check_website, check_links, check_dns or detect_tech (30 a day together) costs nothing. Credits are prepaid and never expire: €5 for 2,000, €19 for 10,000, €59 for 50,000. Pricing.
Is there a local (stdio) version? No need: the remote server works in every client above. If your client only supports stdio, bridge it with npx mcp-remote https://shotmint.creasework.com/mcp --header "Authorization: Bearer YOUR_KEY".
Can it reach localhost or my intranet? No. Renders run on our servers, so only public URLs work. For local pages, pass the HTML itself.
What happens when credits run out? The tool returns an error with a top-up link for the same key; nothing else changes.
No signup, no card. Get a key in one click, then buy credits only if you need more (from €5 for 2,000, never expire). From a script, an AI agent, Make or Zapier, POST /v1/keys/free (no body) returns a key as JSON (openapi.json, no-code recipes).