Claude APIのWeb Fetchツール

Claude API エンジニアリング 6分で読めます

Claude APIのWeb Fetchツール(web fetch tool)を使うと、会話中に登場した特定のURLについて、そのページ本文やPDFの中身をAnthropic側が取得してClaudeに読み込ませることができます。Web検索が「情報を探す」ためのツールであるのに対し、Web Fetchは「指定した1ページを丸ごと読む」ためのツールです。記事の要約、ドキュメントの解析、PDF論文からの情報抽出などに向いています。本ページはAnthropic公式ドキュメントの非公式な日本語訳・要約です。

Web Fetchツールとは

Web Fetchツールは、Anthropicがサーバー側で実行する「組み込みツール(server tool)」のひとつです。リクエストのtoolsに追加しておくと、Claudeが必要と判断したときに指定URLの内容をAnthropic側が取得し、その本文を会話に差し込んでから回答を続けます。開発者がtool_resultを返す必要はありません。

取得できるのはテキスト(HTML)とPDFです。PDFの場合はbase64エンコードされたデータとして返り、直接添付したPDFと同じように扱われます。なお、現時点ではJavaScriptで動的に描画されるページには対応していません。

重要な制約として、Claudeが自分でURLを組み立てて任意のページを取得することはできません。取得できるのは、ユーザーのメッセージ・クライアント側ツールの結果・過去のWeb検索/Web Fetchの結果など、会話にすでに登場したURLだけです。これはデータ持ち出し(exfiltration)のリスクを抑えるための仕組みです。

基本的な使い方

Messages APIのtools配列にWeb Fetchツールを追加します。ツールタイプと名前を指定し、max_usesで1リクエストあたりの取得回数の上限を設定できます。

{
  "model": "claude-opus-4-8",
  "max_tokens": 1024,
  "tools": [
    {
      "type": "web_fetch_20250910",
      "name": "web_fetch",
      "max_uses": 5
    }
  ],
  "messages": [
    { "role": "user", "content": "https://example.com/article の内容を分析して" }
  ]
}

「この記事を要約して: <URL>」のように具体的なページを指し示すと取得が起きますが、「REST API設計のベストプラクティスは?」のような一般的な質問では取得せず、Claudeがそのまま回答します。

新しいバージョン(web_fetch_20260209以降)では「動的フィルタリング」に対応し、取得した長いドキュメントをコンテキストに載せる前にClaudeがコードを書いて必要な部分だけ抽出できます。大きなPDFや長文ページのトークン消費を抑えたいときに有効です。利用可能なモデルや最新のバージョン番号は公式ドキュメントで確認してください。

ツール定義とパラメータ

Web Fetchツールでは、主に次のパラメータを指定できます。いずれも任意です。

{
  "type": "web_fetch_20250910",
  "name": "web_fetch",
  "max_uses": 10,
  "allowed_domains": ["example.com", "docs.example.com"],
  "citations": { "enabled": true },
  "max_content_tokens": 100000
}

さらに新しいバージョンでは、キャッシュを使わず最新を取得するuse_cacheや、エージェント処理で生の取得結果を応答から省くresponse_inclusionといったパラメータも追加されています。

レスポンスと引用の構造

Web Fetchを使った応答には、Claudeが取得を決めた発言、取得リクエスト(server_tool_use)、取得結果(web_fetch_tool_result)が順に含まれます。取得結果には、取得したURL(url)、本文を収めた文書ブロック(content)、取得時刻(retrieved_at)が入ります。

citationsを有効にしておくと、回答本文の該当箇所に、出典文書のタイトルや引用箇所(cited_text)を示す引用が付きます。取得結果をそのままユーザーに見せるときは、出典として引用を併せて表示するのが基本です。

エラー時は、HTTPとしては200が返り、本文の中にエラーが表現されます(Claudeはそのエラーを見てターンを続けます)。代表的なエラーコードには次のものがあります。

検索と取得の組み合わせ

Web検索ツールとWeb Fetchツールを両方有効にしておくと、ユーザーがURLを示さずに「anthropics/anthropic-sdk-python リポジトリのREADMEを読んで」のように具体的なページ名だけを挙げた場合でも、Claudeはまずweb searchでそのページを探し、続いてweb fetchで本文を取得して分析できます。

"tools": [
  { "type": "web_search_20250305", "name": "web_search", "max_uses": 3 },
  { "type": "web_fetch_20250910", "name": "web_fetch", "max_uses": 5,
    "citations": { "enabled": true } }
]

この組み合わせにより、「探す→読む→引用つきで詳しく答える」という一連の流れを、1回のAPIリクエストの中で完結させられます。

料金とセキュリティ上の注意

Web Fetchツール自体には追加料金はかかりません。かかるのは、取得した本文が会話コンテキストに載ることによる通常のトークン料金だけです。目安として、10kBのページで約2,500トークン、100kBのドキュメントで約25,000トークン、500kBの論文PDFで約125,000トークンほどになります。大きなコンテンツを不用意に取り込まないよう、max_content_tokensで上限を設けておくと安全です。

セキュリティ面では、信頼できない入力と機微なデータを同じ会話で扱う環境でWeb Fetchを有効にすると、データ持ち出しのリスクがあります。Anthropicは対策として、Claudeが任意のURLを組み立てられない仕組みにしていますが、残存リスクは残ります。必要に応じて、ツール自体を無効化する、max_usesで回数を制限する、allowed_domainsで信頼できるドメインに限定する、といった対策を検討してください。最新の対応モデル・バージョン・制限は必ずAnthropic公式ドキュメントで確認してください。