io.github.XXO47OXX/spa-reader-mcp

Official registry Productivity

MCP Server that renders JavaScript SPA pages and extracts LLM-ready Markdown content

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

NPM package spa-reader-mcp
Claude Code
claude mcp add spa-reader-mcp -- npx -y spa-reader-mcp@1.0.2
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "spa-reader-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "spa-reader-mcp@1.0.2"
            ]
        }
    }
}

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. spa-reader-mcp
  2. Install
  3. Tools
  4. Security
  5. Dev
  6. License

spa-reader-mcp

MCP server that renders JavaScript SPA pages and extracts Markdown via headless Chromium.

Traditional scrapers fail on SPAs because content is rendered client-side. This tool launches Playwright, waits for JS to finish, then extracts clean Markdown using Readability + Turndown.

Install

npx playwright install chromium
Claude Desktop
{
  "mcpServers": {
    "spa-reader": {
      "command": "npx",
      "args": ["-y", "spa-reader-mcp"]
    }
  }
}
Claude Code
claude mcp add spa-reader -- npx -y spa-reader-mcp

Tools

spa_read

Render a page and extract content as Markdown.

ParameterTypeDefaultDescription
urlstring—URL to read (required)
waitForSelectorstring—CSS selector to wait for
waitTimeoutnumber30000Timeout in ms
includeMetadatabooleantrueAdd YAML frontmatter
cookiesarray—Cookies for auth
headersobject—Custom HTTP headers
spa_screenshot

Capture a PNG screenshot after JS rendering.

ParameterTypeDefaultDescription
urlstring—URL to capture (required)
waitForSelectorstring—CSS selector to wait for
waitTimeoutnumber30000Timeout in ms
widthnumber1280Viewport width
heightnumber720Viewport height
fullPagebooleanfalseFull page capture
cookiesarray—Cookies for auth
headersobject—Custom HTTP headers

Security

  • SSRF protection: blocks private/loopback IPs
  • Only http: and https: schemes allowed
  • Selector injection prevention
  • Content capped at 100KB

Dev

pnpm install && pnpm build
pnpm test

License

MIT

Frequently asked questions

What is io.github.XXO47OXX/spa-reader-mcp?

MCP Server that renders JavaScript SPA pages and extracts LLM-ready Markdown content

How do I install io.github.XXO47OXX/spa-reader-mcp?

It runs on your machine. In Claude Code: claude mcp add spa-reader-mcp -- npx -y spa-reader-mcp@1.0.2. For other clients, paste the JSON configuration from this page into their MCP settings.

Does io.github.XXO47OXX/spa-reader-mcp need an API key?

Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.

Is io.github.XXO47OXX/spa-reader-mcp open source?

Yes. Its code is on GitHub under the MIT license.

Who maintains io.github.XXO47OXX/spa-reader-mcp?

It is published by XXO47OXX. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.