Skip to main content
Glama

spa-reader-mcp

CI npm version

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.

Parameter

Type

Default

Description

url

string

URL to read (required)

waitForSelector

string

CSS selector to wait for

waitTimeout

number

30000

Timeout in ms

includeMetadata

boolean

true

Add YAML frontmatter

cookies

array

Cookies for auth

headers

object

Custom HTTP headers

spa_screenshot

Capture a PNG screenshot after JS rendering.

Parameter

Type

Default

Description

url

string

URL to capture (required)

waitForSelector

string

CSS selector to wait for

waitTimeout

number

30000

Timeout in ms

width

number

1280

Viewport width

height

number

720

Viewport height

fullPage

boolean

false

Full page capture

cookies

array

Cookies for auth

headers

object

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

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - A tier

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/XXO47OXX/spa-reader-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server