mcpField
F
Fetcher MCP

Fetcher MCP

ローカル
1team.topブラウザ自動化1.1k41 週間前に更新

Fetcher MCP について

Fetcher MCP は、Playwright のヘッドレスブラウザで Web ページの内容を取得する MCP サーバーです。JavaScript を実行して動的なページを扱い、Readability アルゴリズムで本文を抽出して Markdown または HTML で出力します。Web コンテンツを一括で収集したい開発者や AI アプリケーションの利用者に適しています。

主な機能

  1. 01Playwright ヘッドレスブラウザによる JavaScript の実行
  2. 02Readability ベースの本文抽出
  3. 03Markdown と HTML の出力形式
  4. 04複数 URL の並列取得
  5. 05画像、スタイルシート、フォントの自動ブロック
  6. 06ブラウザウィンドウを表示するデバッグモード

活用シーン

  1. 01JavaScript による描画に依存する動的ページの取得
  2. 02AI アシスタント向けに Web ページの本文を一括収集
  3. 03デバッグモードで手動ログイン後にコンテンツを取得

MCP 対応

本プロジェクトは MCP サーバーとして、fetch_url、fetch_urls、browser_install のツールを MCP クライアントに公開します。Streamable HTTP の /mcp エンドポイントと SSE の /sse エンドポイントで接続できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"fetcher": {
"command": "npx",
"args": [
"-y",
"fetcher-mcp"
]
}
}
}
起動コマンドnpx -y fetcher-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmfetcher-mcp

ツール

3

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
urlstringはい取得する URL。スキーム(未指定の場合は http:// または https://。ほとんどの場合は https を優先)を必ず含めてください。
timeoutnumberいいえページの読み込みタイムアウト(ミリ秒)。デフォルトは 30000(30 秒)です
waitUntilstringいいえナビゲーション完了と見なすタイミングを指定します。選択肢:'load'、'domcontentloaded'、'networkidle'、'commit'。デフォルトは 'load' です
extractContentbooleanいいえメインコンテンツを自動的に抽出するかどうか。デフォルトは true です
maxLengthnumberいいえ返されるコンテンツの最大長(文字数)。デフォルトは無制限です
returnHtmlbooleanいいえMarkdown ではなく HTML コンテンツを返すかどうか。デフォルトは false です
waitForNavigationbooleanいいえページの初回読み込み後に追加のナビゲーションを待機するかどうか(ボット対策認証のあるサイトで有用)。デフォルトは false です
navigationTimeoutnumberいいえ追加のナビゲーションを待機する最長時間(ミリ秒)。デフォルトは 10000(10 秒)です
disableMediabooleanいいえメディアリソース(画像、スタイルシート、フォント、メディア)を無効にするかどうか。デフォルトは true です
debugbooleanいいえデバッグモード(ブラウザーウィンドウを表示)を有効にするかどうか。指定した場合、--debug コマンドラインフラグを上書きします

詳細

Fetcher MCP アイコン

中文 | 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 content
    

    extractContent: false と returnHtml: true を設定します。

  • ページコンテンツ全体を取得する:抽出されたコンテンツが限られすぎている場合:

    Please fetch the complete webpage content instead of just the main content
    

    extractContent: false を設定します。

  • コンテンツを HTML として返す:デフォルトの Markdown ではなく HTML 形式が必要な場合:

    Please return the content in HTML format
    

    returnHtml: 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 website
    

    debug: true を設定するか、--debug フラグを使用して、手動ログインのためにブラウザーウィンドウを開いたままにします。

  • デバッグ用ブラウザーの操作:デバッグモードが有効な場合:

    1. ブラウザーウィンドウが開いたままになります
    2. 自分の認証情報を使って、ウェブサイトに手動でログインできます
    3. ログインが完了すると、認証済みセッションを使ってコンテンツが取得されます
  • 特定のリクエストでデバッグを有効にする:サーバーがすでに起動している場合でも、特定のリクエストでデバッグモードを有効にできます:

    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 のもとでライセンスされています。

DartNode による提供

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。