Fetch MCP Server with CSS selectors function について
LLMがウェブページの情報を取得する用途向けの、ウェブコンテンツ取得用MCPサーバーです。HTMLをMarkdownに変換し、CSS、ID、要素セレクターで対象コンテンツを抽出できます。
主な機能
- 01URLからウェブページを取得
- 02HTMLをMarkdownに変換
- 03CSS・ID・要素で選択
- 04長い内容を分割して取得
- 05生のコンテンツを出力
活用シーン
- 01ニュース記事の本文だけを抽出
- 02ドキュメントページの特定箇所を取得
- 03長いページを分割して読む
MCP 対応
`custom-fetch`ツールと同名のプロンプトを通じて、URL、セレクター、返却長を指定できるウェブ取得機能をMCPクライアントに提供します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://example.comclaude mcp add --transport http burnworks-mcp-server-fetch https://example.com{"mcpServers":{"burnworks-mcp-server-fetch":{"type":"http","url":"https://example.com"}}}Cursor で開く{"servers":{"burnworks-mcp-server-fetch":{"type":"http","url":"https://example.com"}}}VS Code で開く{"mcpServers":{"burnworks-mcp-server-fetch":{"type":"http","url":"https://example.com"}}}{"mcpServers":{"burnworks-mcp-server-fetch":{"serverUrl":"https://example.com"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
CSS セレクター機能を備えた Fetch MCP サーバー
Web コンテンツの取得機能を提供する Model Context Protocol サーバーです。このサーバーにより、LLM は Web ページのコンテンツを取得して処理し、読み取りやすいように HTML を Markdown に変換できます。
fetch ツールは応答を途中で切り詰めますが、start_index 引数を使用すると、コンテンツ抽出の開始位置を指定できます。これにより、モデルは必要な情報が見つかるまで、Web ページを分割して読み取れます。
利用可能なツール
custom-fetch- インターネット上の URL を取得し、その内容を Markdown として抽出します。url(string, required): 取得する URLmax_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): 取得する URLselector(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 ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。