Skip to main content
Glama
README.md
# AgentRender MCP

<p align="center">
  <img src="https://raw.githubusercontent.com/corbinvachal48/agentrender-mcp/main/assets/logo.png" alt="AgentRender" width="160" height="160" />
</p>

[![Listed on MCP Servers](https://img.shields.io/badge/MCP%20Servers-listed-0A7AEA)](https://mcpservers.org/servers/agentrenderapi-com) [![Glama](https://img.shields.io/badge/MCP-Glama-0A7CFF)](https://glama.ai/mcp/servers/corbinvachal48/agentrender-mcp) [![Listed on MCP ServerList](https://mcp-serverlist.com/api/badge/agentrender-mcp)](https://mcp-serverlist.com/mcp/agentrender-mcp)

**URL → screenshot, PDF, or structured extract for AI agents** via [MCP](https://modelcontextprotocol.io).

> **Get a free API key instantly — 150 renders/month, no card:** https://agentrenderapi.com/#waitlist
> (or just ask your agent to call the `get_free_key` tool with your email)
>
> **Pricing:** Free — 150 renders/month with the free key (no card). Need more? Starter $17/month (2,000 renders/month): https://agentrenderapi.com/#pricing

Tools: `screenshot` (returns the image) · `pdf` (saves a file, returns its path) · `extract` (title, text, links as JSON) · `get_free_key`

## Quick start

1. Get a free key: https://agentrenderapi.com/#waitlist (instant, no card).
2. Add the server to your client (below) with `uvx agentrender-mcp`. Needs [uv](https://docs.astral.sh/uv/getting-started/installation/).
3. Ask your agent: *"Take a screenshot of https://example.com"*.

### Claude Code

```bash
claude mcp add agentrender -e AGENTRENDER_API_KEY=akr_your_key -- uvx agentrender-mcp
```

### Cursor (`~/.cursor/mcp.json`) / Claude Desktop (`claude_desktop_config.json`)

```json
{
  "mcpServers": {
    "agentrender": {
      "command": "uvx",
      "args": ["agentrender-mcp"],
      "env": {
        "AGENTRENDER_API_KEY": "akr_your_key"
      }
    }
  }
}
```

### ChatGPT (OAuth — no API key)

AgentRender works as a ChatGPT app/connector with OAuth sign-in (no key to paste):

1. In ChatGPT, open **Settings → Apps & Connectors** (developer mode, until the directory listing is live) and choose **Create / Add connector**.
2. MCP server URL: `https://api.agentrenderapi.com/mcp` · Authentication: **OAuth**. ChatGPT discovers the authorization server automatically (RFC 9728 protected-resource metadata + dynamic client registration).
3. Click **Connect** and sign in with Google or email (Auth0). A free account (150 renders/month) is created on first sign-in.
4. Try: *"Take a screenshot of https://example.com"*, *"Save https://example.com as a PDF"*, or *"Extract the headings from https://en.wikipedia.org/wiki/Web_scraping"*.

Monthly allowances, rate limits and resets: https://agentrenderapi.com/limits · Privacy: https://agentrenderapi.com/privacy

### Hosted MCP (no install)

Remote Streamable HTTP endpoint: `https://api.agentrenderapi.com/mcp` with header `Authorization: Bearer akr_your_key`.

```bash
claude mcp add --transport http agentrender https://api.agentrenderapi.com/mcp \
  --header "Authorization: Bearer akr_your_key"
```

Cursor:

```json
{
  "mcpServers": {
    "agentrender": {
      "url": "https://api.agentrenderapi.com/mcp",
      "headers": { "Authorization": "Bearer akr_your_key" }
    }
  }
}
```

### pip instead of uvx

```bash
pip install agentrender-mcp
export AGENTRENDER_API_KEY=akr_your_key
agentrender-mcp          # or: python -m agentrender_mcp.server
```

## Environment

| Variable | Default | Purpose |
|----------|---------|---------|
| `AGENTRENDER_API_KEY` | _(required)_ | Your `akr_` key — [free, instant](https://agentrenderapi.com/#waitlist) |
| `AGENTRENDER_BASE_URL` | `https://api.agentrenderapi.com` | API base |

## Tools

| Tool | Maps to | Returns |
|------|---------|---------|
| `screenshot` | `POST /v1/screenshot` | MCP image block (JPEG by default; `format` = png/webp) + short receipt. Optional `save_path`. |
| `pdf` | `POST /v1/pdf` | Saves the PDF locally (`save_path` or temp dir); returns path, bytes, page count. |
| `extract` | `POST /v1/extract` | Title, meta description, canonical, main text, links (non-LLM). |
| `get_free_key` | `POST /v1/eval-key` | Issues a free key (150/mo) for your email and uses it for the session. |

## Plans

Free: 150 renders/month with the free key, no card. Then Starter $17/month (2,000 renders) · Growth $79 · Scale $259 — https://agentrenderapi.com/#pricing

Every result includes a `quota` block (renders left this month). When the free 150 run out, tools return a clear `quota_exceeded` error with an `upgrade_url` — a Stripe checkout link tied to your key. Subscribe there and **the same key is upgraded within seconds**; just retry. Starting fresh from the website instead? Your new key is shown on the checkout confirmation page and emailed instantly.

## REST

```bash
curl -s https://api.agentrenderapi.com/health
curl -s -X POST https://api.agentrenderapi.com/v1/extract \
  -H "Authorization: Bearer $AGENTRENDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com"}'
```

## Notes

- Do not commit API keys. Rotate any key that leaks.
- Support: hello@agentrenderapi.com

## License

MIT

<!-- mcp-name: io.github.corbinvachal48/agentrender-mcp -->

TDQS

A3.5/5.0

Scored across 3 tools

Disambiguation5/5

Each tool captures a distinct output format from a URL: PDF, image, or extracted text/metadata. There is no overlap in purpose, so an agent can easily select the correct tool without ambiguity.

Naming Consistency5/5

All tool names are single, lowercase verbs describing the action ('pdf', 'extract', 'screenshot'). While not verb_noun, the pattern is perfectly consistent and intuitive.

Tool Count5/5

With 3 tools covering URL rendering to PDF, image, and text extraction, the count is well-scoped for a focused utility server. Each tool serves a clear purpose without bloat.

Completeness4/5

The set covers the primary content-capture needs (PDF, image, text extraction). Missing minor capabilities like full HTML or raw response capture, but the core workflows for a render/capture service are complete.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive