FetchV2 について
FetchV2は、ウェブページを読みやすいMarkdownに変換するMCPサーバーです。ウェブ情報を扱うエージェントやクライアント向けに、複数ページの取得、リンク探索、llms.txtの読み取りも提供します。
主な機能
- 01ページ本文をMarkdownとして抽出
- 021回のリクエストで最大10ページを取得
- 03ページ内リンクの探索と絞り込み
- 04llms.txtとリンク先ページの読み取り
- 05生HTML、表、リンクの取得
- 06長い応答のページネーション
活用シーン
- 01複数のドキュメントページをまとめて取得
- 02ドキュメントサイトからガイドへのリンクを検索
- 03llms.txtと関連ドキュメントを読み取る
MCP 対応
FetchV2は、ウェブ取得やリンク探索のツールをMCPクライアントに公開します。URL取得やトピック調査用のプロンプトも提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
4掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | はい | 取得するウェブページの URL(http:// または https:// で始まる必要があります) |
| max_length | integer | いいえ | 返す最大文字数。要約には 1000~2000、全コンテンツには 5000(デフォルト)を指定します。 |
| start_index | integer | いいえ | ページネーション用の文字オフセット。切り詰められたレスポンスの 'start_index=N' の値を使用します。 |
| get_raw_html | boolean | いいえ | コンテンツの抽出をスキップし、生の HTML を返します。元のマークアップが必要な場合や、抽出に失敗した場合に使用します。 |
| include_links | boolean | いいえ | Markdown 内のハイパーリンクを保持します。有効にすると、参照先をたどれます。 |
| include_tables | boolean | いいえ | Markdown 内の表を保持します。テキストのみの記事では無効にします。 |
| include_metadata | boolean | いいえ | 先頭にタイトル、著者、日付を含めます。無効にするとトークンを節約できます。 |
| bypass_robots_txt | boolean | いいえ | robots.txt のチェックをスキップします。ユーザーが開始したリクエストにのみ使用してください。 |
詳細
FetchV2 MCP サーバー
FetchV2 は、ウェブページを取得して整形された Markdown を返す Model Context Protocol(MCP)サーバーです。 Trafilatura を使用して、ナビゲーション、広告、フッターなどのページ要素を取り除きます。
できること
| ツール | 用途 |
|---|---|
fetch | ウェブページを 1 件取得し、主要なコンテンツを抽出します |
fetch_batch | 1 回のリクエストで最大 10 件のウェブページを取得します |
discover_links | ウェブページ上のリンクを検索し、絞り込みます |
fetch_llms_txt | llms.txt のインデックスを読み取り、必要に応じてリンク先のページを取得します |
FetchV2 は、生の HTML を返したり、リンクやテーブルを保持したり、長いコンテンツをページ分割したりできます。
fetch ツールは、デフォルトで robots.txt を確認します。
クイックスタート
要件
uvをインストールします。- Python 3.11 以降をインストールします。
uv python install 3.11
Cursor または VS Code にインストールする
| Cursor | VS Code |
|---|---|
| MCP サーバーをインストール | VS Code にインストール |
別の MCP クライアントを設定する
次のサーバー定義を MCP クライアントの設定に追加します。
{
"mcpServers": {
"fetchv2": {
"command": "uvx",
"args": ["fetchv2-mcp-server@latest"]
}
}
}
一般的な設定ファイルの場所:
- macOS の Claude Desktop:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows の Claude Desktop:
%APPDATA%\Claude\claude_desktop_config.json - Windsurf:
~/.codeium/windsurf/mcp_config.json - Kiro:プロジェクト内の
.kiro/settings/mcp.json
Python 環境にインストールする
パッケージを直接インストールする場合は、次のコマンドのいずれかを使用します。
uv add fetchv2-mcp-server
pip install fetchv2-mcp-server
試してみる
次のようなタスクを MCP クライアントに依頼します。
- 「
<URL>からドキュメントを取得してください。」 - 「
<docs URL>にある、tutorialを含むリンクを探してください。」 - 「次のページを読み、それぞれの違いを要約してください:
[url1, url2, url3]。」
一般的なドキュメントのワークフロー
まず、関連するページを探します。
discover_links(url="https://docs.example.com/", filter_pattern="/guide/")
次に、選択したページを 1 回のリクエストで取得します。
fetch_batch(
urls=[
"https://docs.example.com/guide/intro",
"https://docs.example.com/guide/setup",
]
)
ツールのリファレンス
fetch
ウェブページを 1 件取得し、主要なコンテンツを Markdown として抽出します。
fetch(
url: str,
max_length: int = 5000,
start_index: int = 0,
get_raw_html: bool = False,
include_metadata: bool = True,
include_tables: bool = True,
include_links: bool = False,
bypass_robots_txt: bool = False,
) -> str
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
url | str | 必須 | ウェブページの URL |
max_length | int | 5000 | 返す最大文字数 |
start_index | int | 0 | ページ分割に使用する文字オフセット |
get_raw_html | bool | False | 抽出せずに生の HTML を返します |
include_metadata | bool | True | タイトル、著者、日付を含めます |
include_tables | bool | True | Markdown 内のテーブルを保持します |
include_links | bool | False | Markdown 内のリンクを保持します |
bypass_robots_txt | bool | False | ユーザーが依頼した取得で robots.txt の確認を省略します |
応答が途中で切れている場合は、次の呼び出しで返された start_index の値を使用します。
fetch_batch
最大10件のウェブページを取得し、結果をまとめます。
fetch_batch(
urls: list[str],
max_length_per_url: int = 2000,
get_raw_html: bool = False,
) -> str
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
urls | list[str] | 必須 | 取得するウェブページのURL |
max_length_per_url | int | 2000 | 各URLについて返す最大文字数 |
get_raw_html | bool | False | 抽出処理を行わず、生のHTMLを返します |
このツールは失敗したURLを結果に報告し、ほかのURLの処理を続けます。
robots.txt は確認しません。
discover_links
ウェブページ上のリンクを検索し、必要に応じて正規表現で絞り込みます。
discover_links(url: str, filter_pattern: str = "") -> str
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
url | str | 必須 | スキャンするウェブページのURL |
filter_pattern | str | "" | リンクの絞り込みに使う正規表現 |
このツールは相対リンクを解決し、最大100件のURLを返します。
fetch_llms_txt
llms.txt ファイルを読み込み、ドキュメントへのリンクを一覧表示します。
fetch_llms_txt(
url: str,
include_content: bool = False,
max_length_per_url: int = 2000,
) -> str
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
url | str | 必須 | llms.txt ファイルのURL |
include_content | bool | False | リンク先ページのコンテンツをすべて取得します |
max_length_per_url | int | 2000 | リンク先の各ページについて返す最大文字数 |
デフォルトでは、このツールは llms.txt のインデックスのみを取得します。
include_content=True を設定すると、リンク先ページをすべて取得します。
このオプションを指定すると、大きなレスポンスが返る場合があります。
このツールは、/docs/guide.md などの相対URLを llms.txt のURLを基準に解決します。
プロンプト
fetch_manualは、URLを1つ取得して要約するリクエストを作成します。research_topicは、任意のURLを指定してトピックを調査するリクエストを作成します。
開発
リポジトリをクローンし、開発用の依存関係をインストールします。
git clone https://github.com/praveenc/fetchv2-mcp-server.git
cd fetchv2-mcp-server
uv sync --dev
テストを実行します。
uv run pytest
MCP Inspector でサーバーを実行します。
uv run mcp dev src/fetchv2_mcp_server/server.py
リントと型チェックを実行します。
uv run ruff check .
uv run pyright
コントリビューション
変更を提出する前に、CONTRIBUTING.md をお読みください。
サポート
問題の報告や機能のリクエストには、GitHub issue tracker をご利用ください。
ライセンス
このプロジェクトは MIT License を採用しています。 詳細については、LICENSE をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。