spa-reader-mcp について
spa-reader-mcpは、JavaScriptで描画されるシングルページアプリをレンダリングし、内容をMarkdownとして抽出します。通常のスクレイピングでは取得しにくいページの本文やスクリーンショットを扱うMCPクライアント向けです。
主な機能
- 01JavaScriptページのレンダリング
- 02Markdown形式でコンテンツを抽出
- 03PNGスクリーンショットの撮影
- 04CSSセレクターが現れるまで待機
- 05CookieとHTTPヘッダーの指定
- 06プライベートIPとループバックIPを遮断
活用シーン
- 01JavaScriptで描画されたページを読む
- 02ページ読み込み後にスクリーンショットを撮影
- 03指定したCookieやヘッダーでページにアクセス
MCP 対応
MCPサーバーは、PlaywrightとヘッドレスChromiumを使ったページ読み取り・スクリーンショットツールをMCPクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
2掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | はい | 読み取る SPA ページの URL |
| cookies | array | いいえ | ページ読み込み前に注入する Cookie(例:セッショントークン) |
| headers | object | いいえ | カスタム HTTP ヘッダー(例:Authorization) |
| waitTimeout | number | いいえ | ナビゲーションのタイムアウト(ミリ秒、既定値:30000) |
| includeMetadata | boolean | いいえ | タイトル/作者/抜粋を YAML frontmatter として含めます(既定値:true) |
| waitForSelector | string | いいえ | 抽出前に待機する CSS セレクター |
詳細
spa-reader-mcp
JavaScript SPA ページをレンダリングし、ヘッドレス Chromium を使って Markdown を抽出する MCP サーバーです。
従来のスクレイパーは、コンテンツがクライアント側でレンダリングされるため、SPA では機能しません。このツールは Playwright を起動して JavaScript の実行完了を待った後、Readability + Turndown を使ってクリーンな Markdown を抽出します。
インストール
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
ツール
spa_read
ページをレンダリングし、コンテンツを Markdown として抽出します。
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
url | string | — | 読み取る URL(必須) |
waitForSelector | string | — | 待機する CSS セレクター |
waitTimeout | number | 30000 | タイムアウト(ミリ秒) |
includeMetadata | boolean | true | YAML フロントマターを追加 |
cookies | array | — | 認証用 Cookie |
headers | object | — | カスタム HTTP ヘッダー |
spa_screenshot
JavaScript のレンダリング後に PNG スクリーンショットをキャプチャします。
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
url | string | — | キャプチャする URL(必須) |
waitForSelector | string | — | 待機する CSS セレクター |
waitTimeout | number | 30000 | タイムアウト(ミリ秒) |
width | number | 1280 | ビューポートの幅 |
height | number | 720 | ビューポートの高さ |
fullPage | boolean | false | ページ全体をキャプチャ |
cookies | array | — | 認証用 Cookie |
headers | object | — | カスタム HTTP ヘッダー |
セキュリティ
- SSRF 保護:プライベート IP とループバック IP をブロックします
http:とhttps:スキームのみ許可します- セレクターインジェクションを防止します
- コンテンツは 100KB までに制限されます
開発
pnpm install && pnpm build
pnpm test
ライセンス
MIT
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。