localscreenshot
Screenshot API for AI agents. Any public page as image or PDF, banners hidden, 227 countries.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"localscreenshot": {
"url": "https://api.localscreenshot.com/mcp/free"
}
}
}Remote endpoints
https://api.localscreenshot.com/mcp/freestreamable-httphttps://api.localscreenshot.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (3)
🟢take_demo_screenshot(page, device)
See what a localscreenshot result looks like: a real screenshot of one of our example pages. It does not capture a page of your choice. For that, create a free account and use the main MCP server with an API key.
Input Schema
{
"type": "object",
"properties": {
"page": {
"description": "Which example page to capture.",
"enum": [
"guardian",
"wikipedia",
"hackernews"
],
"type": "string"
},
"device": {
"description": "Screen to render it on. Default: desktop.",
"enum": [
"desktop",
"phone"
],
"type": "string"
}
},
"required": [
"page"
]
}Output Schema
{
"type": "object",
"properties": {
"status": {
"description": "\"succeeded\" when the image is ready, \"pending\" while it is being taken.",
"type": "string"
},
"page": {
"description": "Site that was captured.",
"type": "string"
},
"image_url": {
"description": "Short-lived link to the image.",
"type": "string"
},
"width": {
"description": "Image width in pixels.",
"type": "integer"
},
"height": {
"description": "Image height in pixels.",
"type": "integer"
},
"page_status": {
"description": "HTTP status the page answered with.",
"type": "integer"
},
"taken_at": {
"description": "When the screenshot was taken. Example pages are shared and can be a few hours old.",
"type": "string"
},
"retry_after_seconds": {
"description": "When pending: how long to wait before calling again.",
"type": "integer"
}
},
"required": [
"status"
]
}🟢list_countries
List the countries a screenshot can be taken from, with their two-letter codes. Choosing a country needs an account: this free endpoint only lists them.
Input Schema
{
"type": "object",
"properties": {}
}Output Schema
{
"type": "object",
"properties": {
"count": {
"description": "Number of countries.",
"type": "integer"
},
"countries": {
"items": {
"properties": {
"code": {
"description": "Two-letter country code (ISO 3166-1 alpha-2).",
"type": "string"
},
"name": {
"description": "Country name in English.",
"type": "string"
}
},
"type": "object",
"required": [
"code",
"name"
]
},
"type": "array"
}
},
"required": [
"count",
"countries"
]
}🟢get_pricing
What localscreenshot costs: the free credits every account gets each month, the limits of a free account, what a screenshot costs in credits, and where paid plans and credit packs start.
Input Schema
{
"type": "object",
"properties": {}
}Output Schema
{
"type": "object",
"properties": {
"currency": {
"description": "Currency of the prices, ISO 4217.",
"type": "string"
},
"free_credits": {
"description": "Free credits an account without a paid plan gets each calendar month (UTC). They do not carry over.",
"type": "integer"
},
"free_credits_period": {
"description": "How often the free credits come back: \"month\".",
"type": "string"
},
"free_requests_per_minute": {
"description": "Requests a minute for an account that has only free credits.",
"type": "integer"
},
"credits_per_screenshot": {
"description": "Credits one screenshot costs.",
"type": "integer"
},
"credits_per_screenshot_with_country": {
"description": "Credits one screenshot costs when a country is chosen.",
"type": "integer"
},
"plans_from": {
"properties": {
"price": {
"description": "Price a month of the smallest plan, before tax.",
"type": "number"
},
"credits_per_month": {
"description": "Credits a month in the smallest plan.",
"type": "integer"
}
},
"type": "object",
"required": [
"price",
"credits_per_month"
]
},
"packs_from": {
"properties": {
"price": {
"description": "Price of the smallest credit pack, paid once, before tax.",
"type": "number"
},
"credits": {
"description": "Credits in the smallest pack.",
"type": "integer"
}
},
"type": "object",
"required": [
"price",
"credits"
]
},
"countries": {
"description": "Number of countries a screenshot can be taken from.",
"type": "integer"
}
},
"required": [
"currency",
"free_credits",
"free_credits_period",
"free_requests_per_minute",
"credits_per_screenshot",
"credits_per_screenshot_with_country",
"plans_from",
"packs_from",
"countries"
]
}Community
Evidence