Web Fetch について
Web Fetch は、公開 HTTP(S) URL を送信元から取得する MCP サーバーです。本文、デコード情報、ヘッダー、リダイレクト経路、SHA-256 ハッシュを返し、リクエストと内容に明示的な制限を設けています。
主な機能
- 01公開 URL を1件ずつ取得
- 02テキストまたは生バイト列を返却
- 03ヘッダーとリダイレクト経路を表示
- 04本文全体のハッシュを計算
- 05大きなレスポンスを分割取得
- 06プライベート宛先と非対応形式を拒否
活用シーン
- 01公開ページや文書の確認
- 02SHA-256 ハッシュによる内容検証
- 03大きなレスポンスの分割読み込み
MCP 対応
Pipeworx 経由または単独のローカル stdio MCP サーバーとして、MCP クライアントに `fetch_url` ツールを提供します。ゲートウェイのエンドポイントには Pipeworx 共通のメタツールも含まれます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://gateway.pipeworx.io/web-fetch/mcpclaude mcp add --transport http pipeworx-io-web-fetch https://gateway.pipeworx.io/web-fetch/mcp{"mcpServers":{"pipeworx-io-web-fetch":{"type":"http","url":"https://gateway.pipeworx.io/web-fetch/mcp"}}}Cursor で開く{"servers":{"pipeworx-io-web-fetch":{"type":"http","url":"https://gateway.pipeworx.io/web-fetch/mcp"}}}VS Code で開く{"mcpServers":{"pipeworx-io-web-fetch":{"type":"http","url":"https://gateway.pipeworx.io/web-fetch/mcp"}}}{"mcpServers":{"pipeworx-io-web-fetch":{"serverUrl":"https://gateway.pipeworx.io/web-fetch/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
@pipeworx/web-fetch
公開 URL を 1 つ、オリジンサーバーから直接取得し、受信した内容そのもののバイト列(またはバイト列からデコードしたテキスト)と、オリジンが送信した内容そのものの SHA-256 ハッシュ、さらにリダイレクトチェーンとレスポンスヘッダーを返します。
Pipeworx の一部です。AI エージェントを 1855 以上のライブデータソースに接続する MCP ゲートウェイです。独立した非公式のインテグレーションであり、上流プロバイダーとは提携、承認、公開のいずれも行っていません。
ツール
-
fetch_url(url, format?, max_bytes?, offset?)— 公開 http(s) URL 1 つに対して GET を 1 回実行します。status、url_final、redirects(URL がリダイレクトされた場合のみ存在)、headers(content-type、content-length、last-modified、etag、content-language、date)、content_family(text|pdf|archive|binary)、bytes_total、本文全体のsha256、本文の一部を返します。format: "auto"(デフォルト)— HTML と PDF は読み取り可能なテキストにし、それ以外はすべて本文をそのまま返します。format: "raw"— 本文そのものを返します。テキスト形式の場合はデコード済みテキスト、バイナリ(zip、xlsx、gzip、PDF)の場合は base64 です。sha256_returnedはこの部分のバイト列そのものをハッシュします。format: "text"— 抽出したテキスト(text_extraction:html|pdf|none|failed)を返します。PDF の抽出に関する警告はwarningsでそのまま渡されます。max_bytes(デフォルト 100,000。テキストは最大 1,000,000、base64 は最大 512,000)とoffsetを使って大きな本文をページ分割します。next_offsetに従ってください。
テキストはバイト列からデコードし、推測はしません。文字セットは、BOM、
Content-Typeヘッダー、ページ内の<meta charset>または XML 宣言、有効な UTF-8 バイト列の場合は UTF-8、それ以外の場合は windows-1252 の順に判定されます。charset_sourceは判定に使われたルールを示し、decode_replacementsはデコード時に失われた文字数を示します(0 は損失なし)。
「そのまま」であることを自分で確認する
sha256 は転送圧縮を解除した後のエンティティ本文を対象としています。これは curl --compressed -s <url> | shasum -a 256 が書き出すものと同じバイト列です。ただし、注意点が 2 つあります。動的なページでは数秒後にハッシュが正当に変わることがあり、サイトによっては場所ごとに異なるコンテンツを配信するため、結果はこの取得時に配信された内容そのものです(判明している場合、colo がエッジの場所を示します)。
拒否 — 必ず明確に通知し、空の本文は返しません
error | 発生条件 |
|---|---|
blocked_url | rule: scheme(http/https 以外)、port(80/443 以外)、userinfo(user:pass@)、private_address、dns_private(名前がプライベートアドレスに解決される)、denylisted_host、too_many_redirects、invalid_redirect。URL とすべてのリダイレクト先をチェックします。 |
upstream_refused | 401 / 402 / 403 / 407 / 429 / 451、またはボットウォールのページ(reason: "bot_wall")。status、短い body_summary、自動実行されることのない archive_evidence を示す hint が含まれます。 |
upstream_down | 5xx、タイムアウト、接続失敗、DNS 失敗(phase)。 |
upstream_status | その他の 2xx 以外のステータス。例:404。 |
unsupported_content_type | 画像、音声、動画、フォント、実行ファイル(宣言された型またはマジックバイトに基づく)。 |
too_large | バイト範囲指定に対応していないオリジンで、offset が 10 MB の読み取り上限を超えています。 |
budget_exhausted | 以下のサイト単位または時間単位の上限に達しました。retry_after_s が含まれます。 |
invalid_argument | 引数の形式が不正です。 |
制限事項
- GET は 1 回のみです。Cookie、ログイン、呼び出し元のヘッダー、JavaScript の実行には対応していません。
likely_needs_js: trueは、スクリプトでコンテンツを描画するページを示します。 - 1 回の呼び出しで読み取れるデータは 10 MB までです。それを超える本文の場合は、最初の範囲のみを返し、
truncated: true、body_complete: false、sha256: nullが設定されます。 - 1 回の呼び出しにつき 25 秒、リダイレクトは最大 4 回です。
- サイト(登録可能ドメイン)ごとに、すべての呼び出し元を合わせて、1 分あたり 30 リクエスト、1 日あたり
1,000 リクエストまでです(sec.gov は 1 分あたり 5 リクエスト)。200 レスポンスは 10 分間再利用されます
(
served_from: "cache"、cache_age_s)。 Pipeworx/1.0 (pipeworx.io)を正確に名乗ります。403 の場合は、Pipeworx/1.0 (+https://pipeworx.io; [email protected])として 1 回再試行し、user_agent_usedで使用した値を報告します。
認証
キーは不要です。
データソース
- 呼び出し元が指定する公開 URL。取得されるのは、その URL とリダイレクト先、およびプライベートアドレスに解決される名前を拒否するための https://cloudflare-dns.com/dns-query による DNS-over-HTTPS ルックアップのみです。
クイックスタート
MCP クライアント(Claude Desktop、Cursor、Windsurf など)に追加します。
{
"mcpServers": {
"web-fetch": {
"url": "https://gateway.pipeworx.io/web-fetch/mcp"
}
}
}
このエンドポイントが実際に提供する内容
https://gateway.pipeworx.io/web-fetch/mcp の tools/list は、上の表にあるツールに加えて、
共有 Pipeworx メタツール(ask_pipeworx、
discover_tools、search_within、remember/recall など、ゲートウェイ全体で利用できるツール群)も返します。したがって、表示されるツール数はこの表より多くなります。現在、単一パックのエンドポイントには、そのパック独自のツールとともに、共有ツールが約 30 個一覧表示されます。接続の initialize レスポンスには正確な対象範囲が記載され、その日の状況を確認するための正式な情報となります。
これは意図的な動作であり、偶然の多重化ではありません。メタツールを使うことで、このパックが対応していない質問にも、全カタログを横断する ask_pipeworx 経由で回答できます。そのため、MCP サーバーを追加で用意する必要はありません。現時点では、メタツールを含めずにパックのエンドポイントをマウントする方法はありません。追加のスキーマによるコンテキスト消費がルーティングの利点を上回る場合は、複数のパックエンドポイントではなく、フルゲートウェイに一度だけ接続してください。
または、Pipeworx のフルゲートウェイに接続すると、このパックだけでなく、すべてのパックのツールが直接一覧表示されます。
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
どちらの URL も、同じゲートウェイと同じ 1855 以上のデータソースにつながります。違いは、どのパックのツールが直接一覧表示されるかだけです。どちらからでも、ask_pipeworx を使ってすべてのツールにアクセスできます。
MCP クライアントがない場合:HTTP 経由で呼び出す
curl -X POST https://gateway.pipeworx.io/v1/tools/fetch_url \
-H 'Content-Type: application/json' \
-d '{"url":"https://data.giss.nasa.gov/gistemp/tabledata_v4/GLB.Ts+dSST.csv","max_bytes":2000}'
最初の呼び出しにはアカウントは不要です。ツールの内容を確認するには、GET https://gateway.pipeworx.io/v1/tools/fetch_url を呼び出します。ツールを探すには、{"query":"..."} を指定して POST https://gateway.pipeworx.io/v1/tools/search_packs を呼び出します。
スタンドアロン(ゲートウェイアカウント不要)
このパッケージは、ローカルの stdio MCP サーバーとしても実行できます。Pipeworx アカウントも、ゲートウェイとの往復通信も不要です。
{
"mcpServers": {
"web-fetch": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-web-fetch"]
}
}
}
または、直接実行して起動を確認できます。
npx -y @pipeworx/mcp-web-fetch
stdin/stdout 経由で MCP を使用し、このパックのツールのみを対象に initialize/tools/list/tools/call に応答します。上記のゲートウェイ接続で追加される共有メタツールは含まれません。同じデータソースと同じツールを使用できますが、ask_pipeworx によるルーティングは利用できません。
ask_pipeworx を使う
ツールを直接呼び出す代わりに、自然な英語で質問できます。これは、上記のパックエンドポイントとフルゲートウェイの両方で利用できます。
ask_pipeworx({ question: "your question about Web Fetch data" })
ゲートウェイが適切なツールを選び、引数を自動的に入力します。
詳細情報
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。