Directory / Agents, IDEs & developer tools
CurlShot
Renders any public URL as a PNG, JPEG or WebP screenshot, a PDF, or a scrolling video, full page or at a phone, tablet or desktop preset. list_devices needs no key; take_screenshot needs an API key as a Bearer token (free plan 100 screenshots/month, no card). Endpoint: https://curlshot.com/api/mcp · Docs
Live Answered an MCP handshake without credentials and listed 2 tools.
- Category
- Agents, IDEs & developer tools
- Transport
http- Source
- https://curlshot.com/docs
- Endpoint
https://curlshot.com/api/mcp- MCP Registry
io.github.SergiuPogor/curlshot- Reports itself as
- CurlShot 1.0.0
- Protocol
- 2025-06-18
- Tools
- 2
- Context cost
- about 718 tokens for the tool definitions (estimated at four characters per token)
- Tool definitions last changed
- no change seen since first check
- Handshake time
- 516 ms
- Last checked
- 2026-10-14 08:45:14 UTC
- Listed since
- 2026-10-14
Health and compatibility
| Endpoint reachable | Verified | Responded in 516 ms |
|---|---|---|
| MCP handshake (initialize) | Verified | Completed without credentials |
| Tool discovery (tools/list) | Verified | 2 tools listed |
| Authentication | Verified | None needed to connect |
| Protocol version | Verified | 2025-06-18 |
| Transport | Verified | Streamable HTTP |
| Capabilities declared | Verified | tools |
Last checked . Verified means the check saw it happen; it says nothing about whether the server is safe.
Recent history
1 daily check so far. Green answered, violet asked for auth, red did not answer.
Set up in your client
Claude Code
Run this in a terminal:
claude mcp add --transport http curlshot https://curlshot.com/api/mcpClaude Desktop
Open Settings → Connectors → Add custom connector and paste this URL:
https://curlshot.com/api/mcpOr bridge it through mcp-remote in claude_desktop_config.json (needs Node.js):
{
"mcpServers": {
"curlshot": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://curlshot.com/api/mcp"
]
}
}
}Cursor
Or add it to ~/.cursor/mcp.json (or .cursor/mcp.json in a project):
{
"mcpServers": {
"curlshot": {
"url": "https://curlshot.com/api/mcp"
}
}
}VS Code
Or add it to .vscode/mcp.json:
{
"servers": {
"curlshot": {
"type": "http",
"url": "https://curlshot.com/api/mcp"
}
}
}Or from a terminal:
code --add-mcp '{"name": "curlshot", "type": "http", "url": "https://curlshot.com/api/mcp"}'Windsurf
Add it to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"curlshot": {
"serverUrl": "https://curlshot.com/api/mcp"
}
}
}Other clients
Most clients accept this shape. The endpoint is:
https://curlshot.com/api/mcp{
"mcpServers": {
"curlshot": {
"type": "http",
"url": "https://curlshot.com/api/mcp"
}
}
}If it does not connect
- Restart the client after editing a config file, and keep keys out of files you commit.
- If the tools do not appear, open the client's MCP log: a 401 means the credentials were not accepted, and a timeout means the server did not answer.
Tools 2
Names, descriptions and input schemas exactly as the server returned them on 2026-10-14. This is the server author's own text. Nothing is run from this page. Raw JSON
list_devicesList the device presets accepted by the viewport_device argument of take_screenshot. Needs no access key.
List the device presets accepted by the viewport_device argument of take_screenshot. Needs no access key.
Takes no parameters.
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "list_devices",
"arguments": {}
}
}take_screenshotRender a public web page and return it as an image (or a PDF). Uses one screenshot of the account quota; …
Render a public web page and return it as an image (or a PDF). Uses one screenshot of the account quota; cache hits and failed renders are free. Prefer jpeg or webp to keep the image small. A result over 6 MB comes back as a download link (valid for about a day) instead of inline data.
| Parameter | Type | Description | |
|---|---|---|---|
url | string | required | Full address of the page, starting with http:// or https://. |
format | string | optional | File format of the result. mp4, webm and gif record a video of the page scrolling from top to bottom. One of: png, jpeg, webp, pdf, mp4, webm, gif |
full_page | boolean | optional | Capture the whole page, not just the first screen. |
viewport_device | string | optional | Emulate a device preset (see list_devices). One of: iphone_se, iphone_12, iphone_13, iphone_13_mini, iphone_14, iphone_14_plus, iphone_14_pro, iphone_14_pro_max … |
viewport_width | integer | optional | Width of the browser window in pixels. |
viewport_height | integer | optional | Height of the browser window in pixels. |
dark_mode | boolean | optional | Ask the page for its dark theme. |
block_ads | boolean | optional | Block requests to ad networks. |
block_cookie_banners | boolean | optional | Hide cookie consent banners. |
selector | string | optional | Capture only the first element matching this CSS selector. |
wait_until | string | optional | Page event that marks the page as loaded. One of: load, domcontentloaded, networkidle, commit |
delay | number | optional | Extra seconds to wait after the page has loaded. |
cache | boolean | optional | Reuse a stored copy when the same request was made before. |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "take_screenshot",
"arguments": {
"url": "..."
}
}
}Badge
Maintain this server? Put its live status in your README:
[](https://mcp.aianytime.net/s/curlshot/)Edit this entry · Report a problem
More in Agents, IDEs & developer tools
Checks record what a server answered, not whether it is safe. A listing is not a security audit; read a server's source and permissions before you connect it. Add a server · JSON · llms.txt · llms-full.txt
Browse: Agents, IDEs & developer tools · Search & discovery · Knowledge, memory & context · Media & generation · Security · Finance & markets · Marketing, content & social · Cloud, ops & data · Commerce, travel & logistics · Work & productivity · No account needed · Local servers