Skip to main content
Glama
jae-jae
by jae-jae

フェッチャーMCP

Playwright ヘッドレス ブラウザを使用して Web ページ コンテンツを取得するための MCP サーバー。

利点

  • JavaScript サポート: 従来の Web スクレーパーとは異なり、Fetcher MCP は Playwright を使用して JavaScript を実行するため、動的な Web コンテンツや最新の Web アプリケーションを処理できます。

  • インテリジェントなコンテンツ抽出: 組み込みの読みやすさアルゴリズムにより、Web ページから主要なコンテンツが自動的に抽出され、広告、ナビゲーション、その他の不要な要素が削除されます。

  • 柔軟な出力形式: HTML と Markdown の両方の出力形式をサポートしているため、さまざまな下流アプリケーションと簡単に統合できます。

  • 並列処理: fetch_urlsツールを使用すると、複数の URL を同時に取得できるため、バッチ操作の効率が大幅に向上します。

  • リソースの最適化: 不要なリソース (画像、スタイルシート、フォント、メディア) を自動的にブロックして、帯域幅の使用量を削減し、パフォーマンスを向上させます。

  • 堅牢なエラー処理: 包括的なエラー処理とログ記録により、問題のある Web ページを処理する場合でも信頼性の高い操作が保証されます。

  • 構成可能なパラメータ: さまざまなユースケースに合わせて、タイムアウト、コンテンツの抽出、出力フォーマットを細かく制御します。

Related MCP server: mcp-playwright-scraper

クイックスタート

npx で直接実行します:

npx -y fetcher-mcp

初回セットアップ - ターミナルで次のコマンドを実行して、必要なブラウザをインストールします。

npx playwright install chromium

デバッグモード

--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"]
    }
  }
}

特徴

  • fetch_url - 指定された URL から Web ページのコンテンツを取得します

    • 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 から Web ページのコンテンツを並列に一括取得します

    • マルチタブ並列フェッチを使用してパフォーマンスを向上

    • ウェブページ間の明確な区別とともに統合された結果を返します

    • 次のパラメータをサポートします:

      • urls : 取得するURLの配列(必須パラメータ)

      • その他のパラメータはfetch_urlと同じです

ヒント

特殊なウェブサイトシナリオの取り扱い

アンチクローラー機構への対処

  • 読み込みが完了するまで待機: CAPTCHA、リダイレクト、またはその他の検証メカニズムを使用する Web サイトの場合は、プロンプトに次の内容を含めます。

    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が設定されます。

  • 手動ログイン: 自分の資格情報を使用してログインするには:

    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ライセンスに基づいてライセンスされています

Available Tools

3 tools
browser_installA

Install Playwright Chromium browser binary. Call this if you get an error about the browser not being installed.

ParametersJSON Schema
NameRequiredDescriptionDefault
withDepsNoInstall system dependencies required by Chromium browser. Default is false
forceNoForce installation even if Chromium is already installed. Default is false

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the tool's purpose and trigger condition but doesn't describe what happens during installation (e.g., download size, time, network requirements), potential side effects, or what constitutes successful completion. It provides basic context but lacks richer behavioral details needed for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly concise with two sentences that each serve a distinct purpose: the first states what the tool does, and the second provides usage guidance. There's zero wasted language, and the information is front-loaded with the core functionality stated immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is a mutation tool (installation) with no annotations and no output schema, the description provides good context about when to use it and what it does. However, it doesn't explain what happens after installation completes or what the agent should expect, leaving some gaps in completeness for a tool that modifies system state.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters (withDeps, force) well-documented in the schema. The description doesn't add any parameter-specific information beyond what's already in the schema, so it meets the baseline of 3 where the schema does the heavy lifting without additional value from the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Install Playwright Chromium browser binary') and resource ('Chromium browser binary'), distinguishing it from sibling tools like fetch_url and fetch_urls which perform different operations. It provides a concrete use case ('if you get an error about the browser not being installed') that makes the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool ('if you get an error about the browser not being installed'), providing clear contextual guidance. While it doesn't mention alternatives or exclusions, the specific error-based trigger makes usage guidelines comprehensive and actionable for the stated purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fetch_urlC

Retrieve web page content from a specified URL

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to fetch. Make sure to include the schema (http:// or https:// if not defined, preferring https for most cases)
timeoutNoPage loading timeout in milliseconds, default is 30000 (30 seconds)
waitUntilNoSpecifies when navigation is considered complete, options: 'load', 'domcontentloaded', 'networkidle', 'commit', default is 'load'
extractContentNoWhether to intelligently extract the main content, default is true
maxLengthNoMaximum length of returned content (in characters), default is no limit
returnHtmlNoWhether to return HTML content instead of Markdown, default is false
waitForNavigationNoWhether to wait for additional navigation after initial page load (useful for sites with anti-bot verification), default is false
navigationTimeoutNoMaximum time to wait for additional navigation in milliseconds, default is 10000 (10 seconds)
disableMediaNoWhether to disable media resources (images, stylesheets, fonts, media), default is true
debugNoWhether to enable debug mode (showing browser window), overrides the --debug command line flag if specified

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure but only states the basic action ('Retrieve web page content'). It doesn't mention potential side effects (e.g., network requests, rate limits), authentication needs, error handling, or what the return content looks like (structure or format). This is inadequate for a tool with 10 parameters and no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. It earns its place by clearly stating what the tool does, making it easy to scan and understand.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 10 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain behavioral traits, return values, or usage context, leaving significant gaps that could hinder correct tool selection and invocation by an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, providing detailed documentation for all 10 parameters. The description adds no additional parameter semantics beyond implying a 'URL' input, which is already covered in the schema. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Retrieve') and resource ('web page content from a specified URL'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'fetch_urls' (plural) or 'browser_install', but the singular 'URL' suggests this is for single-page retrieval versus batch operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'fetch_urls' or 'browser_install'. The description lacks context about prerequisites, typical use cases, or exclusions, leaving the agent to infer usage based on tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fetch_urlsC

Retrieve web page content from multiple specified URLs

ParametersJSON Schema
NameRequiredDescriptionDefault
urlsYesArray of URLs to fetch
timeoutNoPage loading timeout in milliseconds, default is 30000 (30 seconds)
waitUntilNoSpecifies when navigation is considered complete, options: 'load', 'domcontentloaded', 'networkidle', 'commit', default is 'load'
extractContentNoWhether to intelligently extract the main content, default is true
maxLengthNoMaximum length of returned content (in characters), default is no limit
returnHtmlNoWhether to return HTML content instead of Markdown, default is false
waitForNavigationNoWhether to wait for additional navigation after initial page load (useful for sites with anti-bot verification), default is false
navigationTimeoutNoMaximum time to wait for additional navigation in milliseconds, default is 10000 (10 seconds)
disableMediaNoWhether to disable media resources (images, stylesheets, fonts, media), default is true
debugNoWhether to enable debug mode (showing browser window), overrides the --debug command line flag if specified

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves content but lacks details on critical behaviors: it doesn't mention authentication needs, rate limits, error handling, or what the output looks like (e.g., format, structure). For a tool with 10 parameters and no output schema, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence: 'Retrieve web page content from multiple specified URLs.' It's front-loaded with the core purpose, has zero wasted words, and is appropriately sized for the tool's complexity. Every part of the sentence earns its place by clearly stating the action and scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (10 parameters, no annotations, no output schema), the description is incomplete. It doesn't address behavioral aspects like how content is returned, error cases, or performance constraints. While the schema covers parameters well, the description fails to provide necessary context for effective use, especially without annotations or output schema to fill gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, meaning all parameters are well-documented in the input schema itself. The description doesn't add any semantic details beyond what's in the schema (e.g., it doesn't explain how 'urls' are processed or interactions between parameters). With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Retrieve web page content from multiple specified URLs.' It specifies the verb ('Retrieve'), resource ('web page content'), and scope ('multiple specified URLs'), which is specific and actionable. However, it doesn't explicitly distinguish this tool from its sibling 'fetch_url' (which presumably handles single URLs), missing full differentiation for a top score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention the sibling tool 'fetch_url' or explain scenarios where fetching multiple URLs is preferred over single ones. There's no context about prerequisites, limitations, or best practices, leaving the agent without usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev1.0.0
    • Addedbrowser_install
  2. 2 tool updates
    • First observedfetch_url
    • First observedfetch_urls

TDQS

B3.2/5.0

Scored across 3 tools

Disambiguation4/5

The tools are mostly distinct, with 'fetch_url' and 'fetch_urls' clearly differentiated by single vs. multiple URLs. However, an agent might initially confuse 'fetch_url' and 'fetch_urls' as similar operations, though the descriptions clarify the distinction. 'browser_install' is completely separate in purpose.

Naming Consistency5/5

All tool names follow a consistent snake_case pattern with clear verb_noun structure: 'browser_install', 'fetch_url', and 'fetch_urls'. The naming is predictable and readable throughout the set.

Tool Count3/5

With only 3 tools, the server feels thin for a web fetching domain, lacking operations like navigation, interaction, or content parsing. While the core fetching is covered, the scope seems limited compared to typical web automation needs.

Completeness2/5

For a web fetching server, there are significant gaps: no tools for interacting with pages (e.g., clicking, filling forms), extracting specific content, handling JavaScript, or managing sessions. The surface is severely incomplete for common web automation tasks beyond basic URL retrieval.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    An MCP server for web content extraction that converts HTML pages into clean, LLM-optimized Markdown using Mozilla's Readability. It supports batch processing, intelligent multi-page crawling, and configurable caching while respecting robots.txt standards.
    69 npm
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that scrapes content from web pages, including JavaScript-heavy sites, and converts it into high-quality Markdown. It leverages Playwright for headless browser automation and Pypandoc for clean content conversion.
    Apache 2.0
  • A
    license
    B
    quality
    C
    maintenance
    An MCP server for deep research that extracts clean text from web pages using hybrid extraction strategies and compiles findings into structured markdown reports. It provides tools for single and batch URL content extraction with optional Playwright support for JavaScript-heavy sites.
    4
    MIT