Skip to main content
Glama
Rendershot

@rendershot/mcp-server

Official
by Rendershot
README.md
# @rendershot/mcp-server

Model Context Protocol (MCP) server for the [Rendershot](https://rendershot.io) screenshot and PDF generation API. Lets AI agents (Claude, Cursor, etc.) capture screenshots and generate PDFs directly as tool calls.

**Source:** [github.com/Rendershot/rendershot-mcp-server](https://github.com/Rendershot/rendershot-mcp-server)

## Quick start

No installation needed — run with `npx`:

```bash
RENDERSHOT_API_KEY=your_key npx @rendershot/mcp-server
```

## Claude Desktop setup

Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "rendershot": {
      "command": "npx",
      "args": ["-y", "@rendershot/mcp-server"],
      "env": {
        "RENDERSHOT_API_KEY": "your_api_key_here"
      }
    }
  }
}
```

## Cursor / VS Code setup

Add to your MCP settings:

```json
{
  "rendershot": {
    "command": "npx",
    "args": ["-y", "@rendershot/mcp-server"],
    "env": {
      "RENDERSHOT_API_KEY": "your_api_key_here"
    }
  }
}
```

## Environment variables

| Variable | Required | Default | Description |
|---|---|---|---|
| `RENDERSHOT_API_KEY` | Yes | — | Your Rendershot API key |
| `RENDERSHOT_BASE_URL` | No | `https://api.rendershot.io` | API base URL (override for self-hosting) |

## Tools

### `take_screenshot`

Capture a screenshot of a URL or HTML string. Returns a base64-encoded image.

| Parameter | Type | Default | Description |
|---|---|---|---|
| `url` | string | — | Page URL to screenshot *(one of url/html required)* |
| `html` | string | — | Raw HTML to render *(one of url/html required)* |
| `format` | `png` \| `jpeg` | `png` | Output image format |
| `quality` | 1–100 | `85` | JPEG quality (ignored for PNG) |
| `viewport_width` | 1–3840 | `1280` | Viewport width in pixels |
| `viewport_height` | 1–2160 | `720` | Viewport height in pixels |
| `full_page` | boolean | `false` | Capture the full scrollable page |
| `wait_for` | string | `dom_content_loaded` | `load` \| `dom_content_loaded` \| `network_idle` \| `commit` \| CSS selector |
| `delay_ms` | 0–10000 | `0` | Extra delay after page load (ms) |
| `ai_cleanup` | `fast` \| `thorough` | — | Remove cookie banners/popups before capture. `fast` uses JS heuristics (1 credit); `thorough` adds an LLM pass (3 credits) |
| `headers` | `{ [name]: value }` | — | Custom HTTP headers sent with the render request. Max 30, values ≤ 2 KB. `Host` / `Cookie` / `Content-Length` / `Sec-*` / `Connection` rejected |
| `cookies` | array | — | Session cookies to inject. Each needs `name`, `value`, and one of `domain` / `url`. Optional: `path`, `expires`, `http_only`, `secure`, `same_site` (`Lax` \| `Strict` \| `None`). Max 50 |
| `basic_auth` | `{ username, password }` | — | HTTP Basic auth. Sent on 401 challenge |

### `generate_pdf`

Generate a PDF from a URL or HTML string. Returns the PDF as a base64-encoded string.

| Parameter | Type | Default | Description |
|---|---|---|---|
| `url` | string | — | Page URL *(one of url/html required)* |
| `html` | string | — | Raw HTML *(one of url/html required)* |
| `format` | `A3` \| `A4` \| `Letter` \| `Legal` | `A4` | Paper size |
| `orientation` | `portrait` \| `landscape` | `portrait` | Page orientation |
| `print_background` | boolean | `true` | Print background graphics/colors |
| `wait_for` | string | `dom_content_loaded` | Same as screenshot |
| `delay_ms` | 0–10000 | `0` | Extra delay after page load (ms) |
| `ai_cleanup` | `fast` \| `thorough` | — | Same as screenshot |
| `headers` | `{ [name]: value }` | — | Same as screenshot |
| `cookies` | array | — | Same as screenshot |
| `basic_auth` | `{ username, password }` | — | Same as screenshot |

### `bulk_render`

Submit up to 20 screenshot or PDF jobs in one call. All jobs run in parallel and results include base64 output per job.

| Parameter | Type | Description |
|---|---|---|
| `jobs` | array (1–20) | Array of job objects, each with `type: "screenshot"` or `type: "pdf"` plus the same fields as the individual tools |

Returns a JSON object with `credits_used`, `credits_remaining`, and a `results` array containing `index`, `result` (base64), and any `error` per job.

### `check_balance`

Check remaining API credits and plan details. No parameters.

## Notes

- All render calls use async mode internally and poll until the job completes (up to 5 minutes).
- Screenshots return MCP `image` content — agents can display them inline.
- PDFs return base64-encoded text; agents can save them to disk or pass them on.
- Errors from the API (rate limits, credit exhaustion, invalid URLs) surface as MCP errors with the original error code.

## Requirements

- Node.js 18+

## License

MIT

TDQS

A3.7/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clear, distinct purpose: bulk_render for batch jobs, check_balance for credits, generate_pdf and take_screenshot for single outputs. No overlap.

Naming Consistency5/5

All tools use consistent snake_case with verb_noun pattern (bulk_render, check_balance, generate_pdf, take_screenshot).

Tool Count5/5

4 tools is well-scoped for a focused rendering server, covering single and batch operations plus balance checking without unnecessary extras.

Completeness4/5

Covers core rendering tasks (screenshot, PDF, batch) and account monitoring. Minor gap: no way to manage or cancel batch jobs, but results are returned immediately.

Maintenance

ActivityInactive
ResponsivenessUnresponsive