Fetch MCP について
Fetcher MCP は、Playwright のヘッドレスブラウザを使ってWebページの内容を取得する MCP サーバーです。JavaScript を実行するため、動的なページやモダンなWebアプリケーションにも対応します。本文を抽出し、MarkdownまたはHTMLで返します。
主な機能
- 01Playwright による JavaScript の実行
- 02Readability による本文抽出
- 03HTML と Markdown の出力形式
- 04fetch_urls による並列バッチ取得
- 05画像やスタイルシートなどのリソースブロック
- 06HTTP と SSE のトランスポート
活用シーン
- 01JavaScript で描画されるページの取得
- 02複数のURLから本文をまとめて収集
- 03クリーンな Markdown を LLM に提供
MCP 対応
本プロジェクトは MCP サーバーであり、fetch_url、fetch_urls、browser_install などのツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
3掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | はい | 取得する URL。スキーム(未指定の場合は http:// または https://。ほとんどの場合は https を優先)を必ず含めてください。 |
| timeout | number | いいえ | ページの読み込みタイムアウト(ミリ秒)。デフォルトは 30000(30 秒)です |
| waitUntil | string | いいえ | ナビゲーション完了と見なすタイミングを指定します。選択肢:'load'、'domcontentloaded'、'networkidle'、'commit'。デフォルトは 'load' です |
| extractContent | boolean | いいえ | メインコンテンツを自動的に抽出するかどうか。デフォルトは true です |
| maxLength | number | いいえ | 返されるコンテンツの最大長(文字数)。デフォルトは無制限です |
| returnHtml | boolean | いいえ | Markdown ではなく HTML コンテンツを返すかどうか。デフォルトは false です |
| waitForNavigation | boolean | いいえ | ページの初回読み込み後に追加のナビゲーションを待機するかどうか(ボット対策認証のあるサイトで有用)。デフォルトは false です |
| navigationTimeout | number | いいえ | 追加のナビゲーションを待機する最長時間(ミリ秒)。デフォルトは 10000(10 秒)です |
| disableMedia | boolean | いいえ | メディアリソース(画像、スタイルシート、フォント、メディア)を無効にするかどうか。デフォルトは true です |
| debug | boolean | いいえ | デバッグモード(ブラウザーウィンドウを表示)を有効にするかどうか。指定した場合、--debug コマンドラインフラグを上書きします |
詳細
中文 | Deutsch | Español | français | 日本語 | 한국어 | Português | Русский
Fetcher MCP
Playwright のヘッドレスブラウザーを使用してウェブページのコンテンツを取得する MCP サーバーです。
🌟 おすすめ: OllaMan - 強力な Ollama AI モデルマネージャーです。
メリット
-
JavaScript のサポート:従来のウェブスクレイパーとは異なり、Fetcher MCP は Playwright を使用して JavaScript を実行するため、動的なウェブコンテンツや最新のウェブアプリケーションを処理できます。
-
インテリジェントなコンテンツ抽出:Readability アルゴリズムを内蔵しており、ウェブページから主要なコンテンツを自動的に抽出し、広告、ナビゲーション、その他の不要な要素を取り除きます。
-
柔軟な出力形式:HTML と Markdown の両方の出力形式に対応しており、さまざまな下流アプリケーションと簡単に連携できます。
-
並列処理:
fetch_urlsツールを使用すると、複数の URL を同時に取得できるため、一括処理の効率が大幅に向上します。 -
リソースの最適化:不要なリソース(画像、スタイルシート、フォント、メディア)を自動的にブロックし、帯域幅の使用量を削減してパフォーマンスを向上させます。
-
堅牢なエラー処理:包括的なエラー処理とログ記録により、問題のあるウェブページを扱う場合でも、安定した動作を実現します。
-
設定可能なパラメーター:タイムアウト、コンテンツ抽出、出力形式を細かく制御でき、さまざまな用途に対応します。
クイックスタート
npx で直接実行します:
npx -y fetcher-mcp
初回セットアップでは、ターミナルで次のコマンドを実行して、必要なブラウザーをインストールしてください:
npx playwright install chromium
HTTP および SSE トランスポート
--transport=http パラメーターを使用すると、Streamable HTTP エンドポイントと SSE エンドポイントのサービスを同時に起動できます:
npx -y fetcher-mcp --log --transport=http --host=0.0.0.0 --port=3000
起動後、サーバーは次のエンドポイントを提供します:
/mcp- Streamable HTTP エンドポイント(最新の MCP プロトコル)/sse- SSE エンドポイント(従来の MCP プロトコル)
クライアントは必要に応じて接続方法を選択できます。
デバッグモード
--debug オプションを指定して実行すると、デバッグ用にブラウザーウィンドウが表示されます:
npx -y fetcher-mcp --debug
MCP の設定
Claude Desktop でこの MCP サーバーを設定します:
MacOS の場合:~/Library/Application Support/Claude/claude_desktop_config.json
Windows の場合:%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"fetcher": {
"command": "npx",
"args": ["-y", "fetcher-mcp"]
}
}
}
Docker へのデプロイ
Docker で実行する
docker run -p 3000:3000 ghcr.io/jae-jae/fetcher-mcp:latest
Docker Compose でデプロイする
docker-compose.yml ファイルを作成します:
version: "3.8"
services:
fetcher-mcp:
image: ghcr.io/jae-jae/fetcher-mcp:latest
container_name: fetcher-mcp
restart: unless-stopped
ports:
- "3000:3000"
environment:
- NODE_ENV=production
# Using host network mode on Linux hosts can improve browser access efficiency
# network_mode: "host"
volumes:
# For Playwright, may need to share certain system paths
- /tmp:/tmp
# Health check
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://localhost:3000"]
interval: 30s
timeout: 10s
retries: 3
次に、以下を実行します:
docker-compose up -d
機能
-
fetch_url- 指定した URL からウェブページのコンテンツを取得します- Playwright のヘッドレスブラウザーを使用して JavaScript を解析します
- メインコンテンツをインテリジェントに抽出し、Markdown に変換できます
- 次のパラメーターをサポートしています:
url:取得するウェブページの URL(必須パラメーター)timeout:ページの読み込みタイムアウト(ミリ秒)。デフォルトは 30000(30 秒)ですwaitUntil:ナビゲーションの完了と見なすタイミングを指定します。選択肢は 'load'、'domcontentloaded'、'networkidle'、'commit' です。デフォルトは 'load' ですextractContent:メインコンテンツをインテリジェントに抽出するかどうか。デフォルトは true ですmaxLength:返されるコンテンツの最大長(文字数)。デフォルトでは制限なしですreturnHtml:Markdown の代わりに HTML コンテンツを返すかどうか。デフォルトは false ですwaitForNavigation:ページの初回読み込み後に追加のナビゲーションを待つかどうか(ボット対策の検証があるサイトで便利です)。デフォルトは false ですnavigationTimeout:追加のナビゲーションを待つ最大時間(ミリ秒)。デフォルトは 10000(10 秒)ですdisableMedia:メディアリソース(画像、スタイルシート、フォント、メディア)を無効にするかどうか。デフォルトは true ですdebug:デバッグモードを有効にするかどうか(ブラウザーウィンドウを表示)。指定した場合は、コマンドラインフラグ--debugより優先されます
-
fetch_urls- 複数の URL からウェブページのコンテンツを並列で一括取得します- 複数のタブを使った並列取得により、パフォーマンスを向上させます
- ウェブページごとに明確に区切った統合結果を返します
- 次のパラメーターをサポートしています:
urls:取得する URL の配列(必須パラメーター)- その他のパラメーターは
fetch_urlと同じです
-
browser_install- Playwright の Chromium ブラウザーバイナリを自動でインストールします- 必要な Chromium ブラウザーバイナリがない場合にインストールします
- ブラウザーのインストールエラーが発生した場合に、自動で提案されます
- 次のパラメーターをサポートしています:
withDeps:Chromium ブラウザーに必要なシステム依存関係をインストールするかどうか。デフォルトは false ですforce:Chromium がすでにインストールされている場合でも、強制的にインストールするかどうか。デフォルトは false です
ヒント
特殊なウェブサイトの状況への対応
クローラー対策への対応
-
読み込みの完了を待つ:CAPTCHA、リダイレクト、その他の検証メカニズムを使用しているウェブサイトでは、プロンプトに次の内容を含めてください:
Please wait for the page to fully loadこれにより、
waitForNavigation: trueパラメーターが使用されます。 -
タイムアウト時間を延長する:読み込みが遅いウェブサイトの場合:
Please set the page loading timeout to 60 secondsこれにより、
timeoutとnavigationTimeoutの両方のパラメーターが適切に調整されます。
コンテンツ取得の調整
-
元の HTML 構造を保持する:コンテンツの抽出に失敗する可能性がある場合:
Please preserve the original HTML contentextractContent: falseとreturnHtml: trueを設定します。 -
ページコンテンツ全体を取得する:抽出されたコンテンツが限られすぎている場合:
Please fetch the complete webpage content instead of just the main contentextractContent: falseを設定します。 -
コンテンツを HTML として返す:デフォルトの Markdown ではなく HTML 形式が必要な場合:
Please return the content in HTML formatreturnHtml: trueを設定します。
デバッグと認証
デバッグモードの有効化
- デバッグを動的に有効化する:特定の取得操作中にブラウザーウィンドウを表示する場合:
サーバーの起動時にPlease enable debug mode for this fetch operation--debugフラグを指定していなくても、debug: trueを設定します。
認証にカスタム Cookie を使用する
-
手動ログイン:自分の認証情報を使ってログインする場合:
Please run in debug mode so I can manually log in to the websitedebug: trueを設定するか、--debugフラグを使用して、手動ログインのためにブラウザーウィンドウを開いたままにします。 -
デバッグ用ブラウザーの操作:デバッグモードが有効な場合:
- ブラウザーウィンドウが開いたままになります
- 自分の認証情報を使って、ウェブサイトに手動でログインできます
- ログインが完了すると、認証済みセッションを使ってコンテンツが取得されます
-
特定のリクエストでデバッグを有効にする:サーバーがすでに起動している場合でも、特定のリクエストでデバッグモードを有効にできます:
Please enable debug mode for this authentication stepこの特定のリクエストに対してのみ
debug: trueを設定し、手動ログイン用にブラウザーウィンドウを開きます。
開発
依存関係のインストール
npm install
Playwright ブラウザーのインストール
Playwright に必要なブラウザーをインストールします:
npm run install-browser
サーバーのビルド
npm run build
デバッグ
デバッグには MCP Inspector を使用します:
npm run inspector
デバッグ時に、ブラウザーを表示するモードを有効にすることもできます:
node build/index.js --debug
関連プロジェクト
- g-search-mcp:複数のキーワードを同時に並列検索できる、Google 検索向けの強力な MCP サーバーです。一括検索やデータ収集に最適です。
ライセンス
MIT License のもとでライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
