mcpField
F
Fetch MCP Server with CSS selectors function

Fetch MCP Server with CSS selectors function

リモート
github.com/burnworksブラウザ自動化082 週間前に更新
リポジトリ

Fetch MCP Server with CSS selectors function について

LLMがウェブページの情報を取得する用途向けの、ウェブコンテンツ取得用MCPサーバーです。HTMLをMarkdownに変換し、CSS、ID、要素セレクターで対象コンテンツを抽出できます。

主な機能

  1. 01URLからウェブページを取得
  2. 02HTMLをMarkdownに変換
  3. 03CSS・ID・要素で選択
  4. 04長い内容を分割して取得
  5. 05生のコンテンツを出力

活用シーン

  1. 01ニュース記事の本文だけを抽出
  2. 02ドキュメントページの特定箇所を取得
  3. 03長いページを分割して読む

MCP 対応

`custom-fetch`ツールと同名のプロンプトを通じて、URL、セレクター、返却長を指定できるウェブ取得機能をMCPクライアントに提供します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://example.com
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

CSS セレクター機能を備えた Fetch MCP サーバー

Web コンテンツの取得機能を提供する Model Context Protocol サーバーです。このサーバーにより、LLM は Web ページのコンテンツを取得して処理し、読み取りやすいように HTML を Markdown に変換できます。

fetch ツールは応答を途中で切り詰めますが、start_index 引数を使用すると、コンテンツ抽出の開始位置を指定できます。これにより、モデルは必要な情報が見つかるまで、Web ページを分割して読み取れます。

利用可能なツール
  • custom-fetch - インターネット上の URL を取得し、その内容を Markdown として抽出します。
    • url (string, required): 取得する URL
    • max_length (integer, optional): 返す文字数の上限(デフォルト:5000)
    • start_index (integer, optional): この文字インデックスからコンテンツを開始します(デフォルト:0)
    • raw (boolean, optional): Markdown に変換せず、生のコンテンツを取得します(デフォルト:false)
    • selector (string, optional): 特定のコンテンツを抽出するための CSS セレクター、ID、または要素名
    • selector_type (string, optional): セレクターの種類:'css'、'id'、または 'element'
プロンプト
  • custom-fetch
    • URL を取得し、その内容を Markdown として抽出します
    • 引数:
      • url (string, required): 取得する URL
      • selector (string, optional): 特定のコンテンツを抽出するための CSS セレクター、ID、または要素名
      • selector_type (string, optional): セレクターの種類:'css'、'id'、または 'element'

セレクター機能

この拡張版には、Web ページから特定のコンテンツを抽出できる強力なセレクター機能が含まれています。

セレクターの種類
  • ID セレクター:ID 属性を使って特定の要素を抽出します

    {
      "url": "https://example.com",
      "selector": "main-content",
      "selector_type": "id"
    }
    
  • 要素セレクター:特定の種類の要素のうち、最初の要素を抽出します

    {
      "url": "https://example.com",
      "selector": "main",
      "selector_type": "element"
    }
    
  • CSS セレクター:CSS セレクターの構文を使ってコンテンツを抽出します

    {
      "url": "https://example.com",
      "selector": ".article-content > p",
      "selector_type": "css"
    }
    
使用例
  • ニュースサイトから記事本文だけを抽出する
  • ドキュメントページの特定のセクションに絞る
  • 大規模な Web ページから必要なコンテンツを正確に指定する

インストール

任意:node.js をインストールすると、fetch サーバーはより堅牢な別の HTML 簡略化ツールを使用します。

uv を使用する(推奨)

uv を使用する場合、特別なインストールは必要ありません。uvx を使って burnworks-mcp-server-fetch を直接実行します。

PIP を使用する

または、pip を使って burnworks-mcp-server-fetch をインストールできます。

pip install burnworks-mcp-server-fetch

インストール後、次のようにスクリプトとして実行できます。

python -m burnworks_mcp_server_fetch

設定

Claude.app の設定

Claude の設定に追加します。

uvx を使用する
"mcpServers": {
  "custom-fetch": {
    "command": "uvx",
    "args": ["burnworks-mcp-server-fetch"]
  }
}
pip でインストールする
"mcpServers": {
  "custom-fetch": {
    "command": "python",
    "args": ["-m", "burnworks_mcp_server_fetch"]
  }
}
カスタマイズ - robots.txt

デフォルトでは、リクエストがモデル(ツール経由)から送信された場合、サーバーはウェブサイトの robots.txt ファイルに従います。ただし、ユーザーが開始したリクエスト(プロンプト経由)の場合は従いません。設定の args リストに --ignore-robots-txt 引数を追加すると、この動作を無効にできます。

カスタマイズ - User-agent

デフォルトでは、リクエストがモデル(ツール経由)から送信されたか、ユーザーが開始したもの(プロンプト経由)かに応じて、サーバーは次のいずれかの user-agent を使用します。

ModelContextProtocol/1.0 (Autonomous; +https://github.com/modelcontextprotocol/servers)

または

ModelContextProtocol/1.0 (User-Specified; +https://github.com/modelcontextprotocol/servers)

設定の args リストに --user-agent=YourUserAgent 引数を追加すると、これをカスタマイズできます。

カスタマイズ - プロキシ

--proxy-url 引数を使用して、プロキシを使うようサーバーを設定できます。

デバッグ

MCP inspector を使ってサーバーをデバッグできます。uvx でインストールした場合:

npx @modelcontextprotocol/inspector uvx burnworks-mcp-server-fetch

または、パッケージを特定のディレクトリにインストールした場合や、開発中の場合:

cd path/to/servers/src/fetch
npx @modelcontextprotocol/inspector uv run burnworks-mcp-server-fetch

セレクターの使用例

メインコンテンツ領域だけを抽出する
custom-fetch
  url: https://example.com/article
  selector: main
  selector_type: element
ID でコンテンツを抽出する
custom-fetch
  url: https://example.com/blog
  selector: article-body
  selector_type: id
複雑な CSS セレクターで抽出する
custom-fetch
  url: https://example.com/documentation
  selector: .content-wrapper article > section:first-child
  selector_type: css

コントリビューション

このプロジェクト burnworks_mcp_server_fetch, は、CSS セレクター機能を追加した、元の mcp-server-fetch のフォークとして開発されました。元のプロジェクトは次の場所にあります。

https://github.com/modelcontextprotocol/servers

この拡張版への貢献を希望される場合は、リポジトリにイシューまたはプルリクエストをお気軽にお送りください。ベースとなる MCP サーバーのアーキテクチャと実装パターンについては、上記の元のプロジェクトへのリンクをご覧ください。

ライセンス

このプロジェクトは MIT ライセンスの下でライセンスされています。MIT ライセンスの利用規約に従うことを条件として、ソフトウェアを自由に使用、変更、配布できます。詳しくは、プロジェクトリポジトリ内の LICENSE ファイルをご覧ください。

コメント

MCP は初めてですか?

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

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