localscreenshot - Screenshot API & MCP Server
Take a screenshot of any public web page from 227 countries, with cookie banners and ads hidden. Use it from your code with the REST API, or from your AI assistant through the Model Context Protocol.
This repository is the public documentation of the hosted service: the MCP endpoint, the tools, the client setups and the registry manifest. The service itself runs at localscreenshot.com, the command line client lives in localscreenshot-cli.
Quick start, no API key
Any HTTP MCP client can connect to the free endpoint. Real screenshots, no sign-up:
It answers initialize, tools/list, prompts/list and resources/list without credentials, and gives three tools: a real screenshot of one of three example pages, the list of countries, and the prices. It cannot capture a page of your choice.
As a plugin
The repository follows the Open Plugins standard, so directory scans find it: plugin.json carries the identity, mcp.json declares the connection. Both point at the free endpoint above, which means an install works immediately and gives the three demo tools listed below.
To capture a page of your choice through the same plugin, replace the url and add the headers block in mcp.json with the keyed setup in the next section. Nothing else changes, the tools are the same ones, they just stop being limited to the example pages.
With your own key
A free account gets 50 credits every month, no card: localscreenshot.com/signup. Create the key in the dashboard, under Connect.
Claude Code, in one line:
Setups for each tool, written from that tool's own documentation: localscreenshot.com/mcp and docs.localscreenshot.com/agent.
Tools
With a key:
On the free endpoint:
take_screenshot accepts the same options as the API, except async and response: the server waits for the picture and decides how to hand it back. The image is scaled down to 1,568 pixels wide unless you ask for another width, which keeps it readable for a vision model without spending tokens for nothing. A PDF, or an image over 4 MB, comes back as a short-lived download link instead of an attachment. Errors arrive as a plain sentence with their code.
Options
take_screenshot exposes the 28 parameters of the API, minus async and response: the server waits for the picture and decides how to hand it back.
Full details: Take a screenshot.
What it costs
- 1 credit for a screenshot, 2 from a chosen country. A failed screenshot is not charged.
- 50 free credits every calendar month, no card. Unused credits do not carry over.
- A free account can send 10 requests a minute and run 2 screenshots at a time.
- Plans and credit packs: localscreenshot.com/pricing.
Countries
227 countries, from AD Andorra onward. The list is served by GET https://localscreenshot.com/v1/countries, documented on Countries and attestation. The response of a country-specific capture reports the country actually observed, and a capture that could not be obtained from that country fails and is not charged.
REST API
The response is the image. Add response=json for a link to the image plus the page details and the attestation. POST with a JSON body works the same way. Background captures return an id, read it at /v1/screenshots/{id}.
Command line
Both packages are built from localscreenshot-cli, with no dependency and no telemetry. The key comes from LOCALSCREENSHOT_API_KEY or from localscreenshot login.
What it does not do
It cannot sign in to a website, solve a CAPTCHA or get past a paywall. It captures public pages only.
Links
License
MIT. See LICENSE.