mcpField
F
Fetch MCP

Fetch MCP

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

Fetch MCP について

Fetcher MCP は、Playwright のヘッドレスブラウザを使ってWebページの内容を取得する MCP サーバーです。JavaScript を実行するため、動的なページやモダンなWebアプリケーションにも対応します。本文を抽出し、MarkdownまたはHTMLで返します。

主な機能

  1. 01Playwright による JavaScript の実行
  2. 02Readability による本文抽出
  3. 03HTML と Markdown の出力形式
  4. 04fetch_urls による並列バッチ取得
  5. 05画像やスタイルシートなどのリソースブロック
  6. 06HTTP と SSE のトランスポート

活用シーン

  1. 01JavaScript で描画されるページの取得
  2. 02複数のURLから本文をまとめて収集
  3. 03クリーンな Markdown を LLM に提供

MCP 対応

本プロジェクトは MCP サーバーであり、fetch_url、fetch_urls、browser_install などのツールを MCP クライアントに公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"fetch": {
"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 つのサーバーを複数のクライアントで再利用できます。