Skip to main content
Glama
chinkauchenna2021

screenshotfreeapi

README.md
# screenshotfreeapi-mcp

MCP server for [ScreenshotFreeAPI](https://screenshotfreeapi.com) — capture websites, render HTML/PDF, and fetch app store listing screenshots from any MCP-compatible AI client (Claude Desktop, Cursor, VS Code Copilot, Cline, Windsurf, etc.).

## Setup

Get an API key from your [ScreenshotFreeAPI dashboard](https://screenshotfreeapi.com/dashboard/api-keys), then add this server to your MCP client's config.

**Claude Desktop** (`claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "screenshotfreeapi": {
      "command": "npx",
      "args": ["-y", "screenshotfreeapi-mcp"],
      "env": {
        "SCREENSHOTFREEAPI_KEY": "sfa_your_api_key_here"
      }
    }
  }
}
```

Other MCP clients (Cursor, Cline, Windsurf) use the same `command`/`args`/`env` shape in their own config file — consult your client's docs for the config file location.

## Environment variables

| Variable | Required | Description |
|---|---|---|
| `SCREENSHOTFREEAPI_KEY` | Yes | Your API key (`sfa_...`). Without it, every tool call fails with 401. |
| `SCREENSHOTFREEAPI_BASE_URL` | No | Override the API base URL. Defaults to `https://api.screenshotfreeapi.com`. |

## Tools

| Tool | Description |
|---|---|
| `screenshot_web` | Capture a website screenshot (PNG/JPEG/WebP/PDF), with AI element targeting, full-page, custom viewport, and ad-block options. |
| `screenshot_mobile` | Capture app store listing screenshots (iOS/Android) by app name or bundle ID. |
| `render_html` | Render raw HTML/CSS to an image or PDF. |
| `get_job_status` | Poll the status of a screenshot job. |
| `get_job_result` | Fetch the result (URLs + metadata) of a completed job. |
| `list_jobs` | List recent jobs for the authenticated account. |
| `check_quota` | Check remaining screenshot quota and current plan. |

All capture tools are asynchronous: they enqueue a job and return a `jobId`. Use `get_job_status` to poll, then `get_job_result` once `status` is `completed`.

## Local development

```bash
npm install
npm run dev        # run directly with tsx
npm run build       # compile to dist/ for npx/publish
npm run typecheck
```

## License

MIT

TDQS

A4/5.0

Scored across 7 tools

Disambiguation5/5

Each tool targets a distinct aspect of the screenshot service: quota checking, job management (listing, status, results), and three distinct screenshot sources (web, mobile, HTML). No two tools have overlapping functionality.

Naming Consistency4/5

Tool names generally follow a verb_noun pattern (check_quota, get_job_result, get_job_status, list_jobs, render_html), but screenshot_mobile and screenshot_web use a noun-verb style. This minor inconsistency reduces the score slightly.

Tool Count5/5

With 7 tools, the server is well-scoped for its purpose: it covers screenshot generation from multiple sources, job tracking, and quota checking without unnecessary clutter.

Completeness4/5

The tool surface covers the core screenshot workflow (create, track, retrieve) and multiple input types. Minor gaps include no way to cancel/delete jobs or manage API keys, but these are not critical for basic usage.

Maintenance

ActivityInactive
ResponsivenessNo issues