# SPA Reader

> Use this tool when you need to extract content from single-page applications that traditional web scrapers can't handle, or capture screenshots of web pages with accurate JavaScript rendering. It takes URLs as input and outputs clean Markdown content or PNG screenshots, with optional YAML frontmatter and built-in security features like SSRF protection. Ideal for web data extraction, monitoring, or archiving use cases where dynamic content needs to be accurately captured.

Canonical page: https://skillsregistry.net/skills/xxo47oxx-spa-reader  
JSON: https://api.skillsregistry.net/v1/skills/xxo47oxx-spa-reader

## Description

Solves the problem of traditional web scrapers failing on single-page applications by launching a headless Chromium browser via Playwright, waiting for full JavaScript rendering, then extracting clean Markdown using Mozilla's Readability and Turndown. Provides two tools: spa_read for content extraction with optional YAML frontmatter, and spa_screenshot for capturing PNG screenshots. Includes SSRF protection blocking private IP ranges, selector injection prevention, and content truncation at 100KB with clean line-boundary handling.

## Trust

- **Trust score (0–1):** 0.65
- **Verification tier:** scanned
- **Last scanned:** 2026-09-01

## Facts

- **Version:** 1.0.0
- **Skill type:** atomic
- **Execution layer:** mcp-remote
- **Runtime environment:** api
- **Category:** browser-automation
- **Updated:** 2026-09-01

## Source

- **Source listing:** [PulseMCP](https://www.pulsemcp.com/servers/xxo47oxx-spa-reader)
- **Repository:** <https://github.com/xxo47oxx/spa-reader-mcp>

## Use it

Resolve this record through the SkillsRegistry MCP server (no auth, read-only):

```
claude mcp add --transport http --scope user skillsregistry https://api.skillsregistry.net/mcp
```

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_skill",
    "arguments": {
      "slug": "xxo47oxx-spa-reader"
    }
  }
}
```

REST: `GET https://api.skillsregistry.net/v1/skills/xxo47oxx-spa-reader` · pull for local use: `GET https://api.skillsregistry.net/v1/skills/xxo47oxx-spa-reader/pull`

---
SkillsRegistry indexes agent skills from public registries and GitHub. Skills we have analysed are scanned with Circle-IR and scored on six dimensions; each listing states its scan coverage. More: https://skillsregistry.net/llms.txt
