mcpField
W
Web Fetch

Web Fetch

リモート
pipeworx.ioブラウザ自動化01 週間前に更新
リポジトリ公式サイト

Web Fetch について

Web Fetch は、公開 HTTP(S) URL を送信元から取得する MCP サーバーです。本文、デコード情報、ヘッダー、リダイレクト経路、SHA-256 ハッシュを返し、リクエストと内容に明示的な制限を設けています。

主な機能

  1. 01公開 URL を1件ずつ取得
  2. 02テキストまたは生バイト列を返却
  3. 03ヘッダーとリダイレクト経路を表示
  4. 04本文全体のハッシュを計算
  5. 05大きなレスポンスを分割取得
  6. 06プライベート宛先と非対応形式を拒否

活用シーン

  1. 01公開ページや文書の確認
  2. 02SHA-256 ハッシュによる内容検証
  3. 03大きなレスポンスの分割読み込み

MCP 対応

Pipeworx 経由または単独のローカル stdio MCP サーバーとして、MCP クライアントに `fetch_url` ツールを提供します。ゲートウェイのエンドポイントには Pipeworx 共通のメタツールも含まれます。

設定

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

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

コマンドはターミナルで実行し、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_urlrule: scheme(http/https 以外)、port(80/443 以外)、userinfo(user:pass@)、private_address、dns_private(名前がプライベートアドレスに解決される)、denylisted_host、too_many_redirects、invalid_redirect。URL とすべてのリダイレクト先をチェックします。
upstream_refused401 / 402 / 403 / 407 / 429 / 451、またはボットウォールのページ(reason: "bot_wall")。status、短い body_summary、自動実行されることのない archive_evidence を示す hint が含まれます。
upstream_down5xx、タイムアウト、接続失敗、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

コメント

MCP は初めてですか?

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

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