Scrapy
FreeNot checkedMCPで基本的なHTTPスクレイピングから、JavaScript実行が必要な動的サイトまで対応した、TypeScript製のスクレイピングツールです。
About
MCPで基本的なHTTPスクレイピングから、JavaScript実行が必要な動的サイトまで対応した、TypeScript製のスクレイピングツールです。
README
MIT License TypeScript Node.js
高機能なWebスクレイピングMCPサーバー - Model Context Protocol (MCP) 対応
基本的なHTTPスクレイピングから、JavaScript実行が必要な動的サイトまで対応した、TypeScript製の高性能スクレイピングツールです。
✨ 特徴
🔧 Simple Scrape
- ⚡ 高速軽量: 基本的なHTTPリクエストベース
- 📄 静的コンテンツ: HTML/CSS/テキスト抽出
- 🎯 CSSセレクター: 精密な要素抽出
- 🛡️ 型安全: TypeScript完全対応
🚀 Puppeteer Scrape
- 🌐 JavaScript実行: 動的コンテンツ完全対応
- 📱 SPA対応: React/Vue/Angularアプリ
- 📸 スクリーンショット: 高品質画像キャプチャ
- 🖱️ インタラクション: クリック・入力・スクロール
- ⏱️ 待機制御: 要素・時間ベース待機
- 🔒 プロキシ対応: HTTP/HTTPS/SOCKS プロキシサポート
📦 Batch Scrape
- 🔄 一括処理: 複数URLの同時スクレイピング
- ⚡ 並行制御: カスタマイズ可能な同時実行数
- 🔁 リトライ機能: 自動エラー回復
- ⏱️ レート制限: リクエスト間隔の調整
- 📊 進捗表示: リアルタイム処理状況
🚀 クイックスタート
インストール
# リポジトリをクローン
git clone https://github.com/your-username/scrapy-mcp.git
cd scrapy-mcp
# 依存関係をインストール
npm install
# TypeScriptをビルド
npm run build
基本的な使用方法
# 開発モード(ファイル監視)
npm run dev
# 本番モード
npm start
🔧 設定
各種設定ファイルに以下を追加:
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"scrapy-mcp": {
"command": "node",
"args": ["path/to/scrapy-mcp/dist/index.js"]
}
}
}
📖 使用例
基本的なスクレイピング
simple_scrape を使用して https://example.com からテキストを取得
特定要素の抽出
simple_scrape でタイトルを取得:
- URL: https://news.ycombinator.com
- selector: .titleline > a
- format: text
JavaScript必須サイト
puppeteer_scrape で動的コンテンツを取得:
- URL: https://spa-example.com
- waitFor: 3000
- format: text
スクリーンショット撮影
puppeteer_scrape でスクリーンショット:
- URL: https://example.com
- format: screenshot
- viewport: { width: 1920, height: 1080 }
フォーム操作
puppeteer_scrape でログイン:
- URL: https://example.com/login
- actions:
- { type: "type", selector: "#username", text: "user" }
- { type: "type", selector: "#password", text: "pass" }
- { type: "click", selector: "#submit" }
- waitFor: 2000
プロキシ使用
simple_scrape でプロキシ経由アクセス:
- URL: https://example.com
- proxy:
- server: "proxy.example.com:8080"
- username: "proxyuser"
- password: "proxypass"
- type: "http"
一括スクレイピング
batch_scrape で複数サイトを一括処理:
- urls: ["https://site1.com", "https://site2.com", "https://site3.com"]
- selector: "h1"
- concurrency: 3
- delay: 1000
- maxRetries: 2
- timeout: 30
🛠️ API リファレンス
simple_scrape
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
url |
string | ✅ | スクレイピング対象URL |
selector |
string | ❌ | CSSセレクター |
format |
"text" | "html" |
❌ | 出力形式(デフォルト: "text") |
puppeteer_scrape
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
url |
string | ✅ | スクレイピング対象URL |
selector |
string | ❌ | CSSセレクター |
format |
"text" | "html" | "screenshot" |
❌ | 出力形式 |
waitFor |
number | ❌ | 待機時間(ミリ秒) |
waitForSelector |
string | ❌ | 要素の読み込み待機 |
headless |
boolean | ❌ | ヘッドレスモード(デフォルト: true) |
viewport |
object | ❌ | ビューポートサイズ |
actions |
array | ❌ | 実行アクション |
proxy |
object | ❌ | プロキシ設定 |
batch_scrape
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
urls |
string[] | ✅ | スクレイピング対象URL配列 |
selector |
string | ❌ | CSSセレクター |
format |
"text" | "html" |
❌ | 出力形式 |
concurrency |
number | ❌ | 並行数(デフォルト: 3) |
delay |
number | ❌ | リクエスト間遅延(ミリ秒) |
maxRetries |
number | ❌ | 最大リトライ回数(デフォルト: 2) |
timeout |
number | ❌ | タイムアウト(秒) |
proxy |
object | ❌ | プロキシ設定 |
アクション種類
| アクション | 必須パラメータ | オプション | 説明 |
|---|---|---|---|
click |
selector |
delay |
要素をクリック |
type |
selector, text |
delay |
テキスト入力 |
wait |
- | delay |
時間待機 |
scroll |
- | delay |
ページスクロール |
プロキシ設定
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
server |
string | ✅ | プロキシサーバー(例: proxy.example.com:8080) |
username |
string | ❌ | 認証ユーザー名 |
password |
string | ❌ | 認証パスワード |
type |
"http" | "https" | "socks4" | "socks5" |
❌ | プロキシタイプ(デフォルト: "http") |
🏗️ 開発
プロジェクト構造
scrapy-mcp/
├── src/
│ └── index.ts # メインソースコード
├── dist/ # ビルド出力
│ ├── index.js
│ └── index.d.ts
├── package.json # 依存関係・スクリプト
├── tsconfig.json # TypeScript設定
├── LICENSE # MITライセンス
└── README.md # このファイル
利用可能なスクリプト
npm run build # TypeScriptコンパイル
npm run dev # 開発モード(ファイル監視)
npm start # 本番モード
npm run clean # ビルドファイル削除
開発環境要件
- Node.js: 18.0.0 以上
- TypeScript: 5.0 以上
- OS: Windows, macOS, Linux
🔒 セキュリティ
- ✅ サンドボックス化されたブラウザ実行
- ✅ 適切なUser-Agent設定
- ✅ リソース制限とタイムアウト
- ⚠️ 責任あるスクレイピングを心がけてください
⚠️ 制限事項
Simple Scrape
- JavaScriptは実行されません
- 静的コンテンツのみ対応
Puppeteer Scrape
- 高いリソース使用量
- 初回起動時のChromiumダウンロード
- 一部のCAPTCHA保護サイトでは制限あり
🤝 コントリビューション
- このリポジトリをフォーク
- フィーチャーブランチを作成 (
git checkout -b feature/amazing-feature) - 変更をコミット (
git commit -m 'Add amazing feature') - ブランチにプッシュ (
git push origin feature/amazing-feature) - プルリクエストを作成
📝 ライセンス
このプロジェクトは MIT License の下で公開されています。
🙏 謝辞
- Model Context Protocol - MCPフレームワーク
- Puppeteer - ブラウザ自動化
- Cheerio - サーバーサイドjQuery
- TypeScript - 型安全なJavaScript
📞 サポート
- 🐛 バグ報告: Issues
- 💡 機能要望: Issues
- 📧 その他: [email protected]
⭐ このプロジェクトが役に立った場合は、スターをつけていただけると嬉しいです!
Installing Scrapy
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/musoukun/scrapy-mcpFAQ
Is Scrapy MCP free?
Yes, Scrapy MCP is free — one-click install via Unyly at no cost.
Does Scrapy need an API key?
No, Scrapy runs without API keys or environment variables.
Is Scrapy hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Scrapy in Claude Desktop, Claude Code or Cursor?
Open Scrapy on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectAmap Maps Mcp Server
MCP server for using the AMap Maps API
by duxiaohuiSupabase
Database, auth and storage
by SupabaseEverything
Reference / test server with prompts, resources, and tools.
Git
Tools to read, search, and manipulate Git repositories.
Sequential Thinking
Dynamic and reflective problem-solving through thought sequences.
Time
Time and timezone conversion capabilities.
Compare Scrapy with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
