# WebFetch

公開 Web ページの内容を取得し、HTML を Markdown に変換して、自然言語プロンプトを使って結果に対して小さな補助モデルを実行し、必要な情報を抽出します。

## 使用タイミング

- 会話で参照された公開ドキュメントページ、ブログ投稿、または RFC を読む。
- 既知の URL から特定の事実、コードスニペット、またはテーブルを、ページ全体をコンテキストにロードせずに抽出する。
- 公開 Web リソースのリリースノートやチェンジログを要約する。
- ソースがローカルリポジトリにない場合にライブラリの公開 API リファレンスを確認する。
- ユーザーがチャットに貼り付けたリンクをたどってフォローアップの質問に答える。

## パラメータ

- `url` (string, required): 完全な形式の絶対 URL。プレーンな `http://` は自動的に `https://` にアップグレードされます。
- `prompt` (string, required): 小さな抽出モデルに渡される指示。「すべてのエクスポートされた関数をリストする」や「サポートされる最小 Node バージョンを返す」など、ページから何を取り出すかを正確に記述します。

## 例

### 例 1: 設定デフォルトを抽出

```
WebFetch(
  url="https://vitejs.dev/config/server-options.html",
  prompt="What is the default value of server.port and can it be a string?"
)
```

ツールは Vite docs ページを取得し、Markdown に変換し、「デフォルトは `5173`、数値のみを受け入れる」のような短い回答を返します。

### 例 2: チェンジログセクションを要約

```
WebFetch(
  url="https://nodejs.org/en/blog/release/v20.11.0",
  prompt="List the security fixes included in this release as bullet points."
)
```

ユーザーが「Node 20.11 で何が変わった？」と尋ね、リリースページが長い場合に便利です。

## 注意事項

- `WebFetch` は認証、Cookie、または VPN を必要とする URL では失敗します。Google Docs、Confluence、Jira、プライベート GitHub リソース、内部 wiki には、認証付きアクセスを提供する専用 MCP サーバーを代わりに使用してください。
- GitHub にホストされているもの (PR、issue、ファイル blob、API 応答) には、Web UI をスクレイピングするよりも `Bash` 経由の `gh` CLI を優先してください。`gh pr view`、`gh issue view`、`gh api` は構造化データを返し、プライベートリポジトリに対しても動作します。
- 取得されたページが非常に大きい場合、結果は要約されることがあります。正確なテキストが必要な場合は、`prompt` を絞ってリテラル抽出を求めてください。
- URL ごとに 15 分の自己クリーニングキャッシュが適用されます。同じページへの 1 セッション中の繰り返し呼び出しはほぼ瞬時ですが、わずかに古いコンテンツを返すことがあります。鮮度が重要な場合はプロンプトで言及するか、キャッシュが切れるのを待ってください。
- 対象ホストがクロスホストリダイレクトを発行した場合、ツールは特別な応答ブロックで新しい URL を返し、自動的には従いません。まだコンテンツが必要な場合は、リダイレクト先で `WebFetch` を再呼び出ししてください。
- プロンプトはメインアシスタントよりも小さく高速なモデルによって実行されます。狭く具体的に保ってください。複雑なマルチステップ推論は、取得後に生の Markdown を自分で読む方がうまく処理できます。
- URL に埋め込まれたシークレット、トークン、またはセッション識別子を絶対に渡さないでください — 出力に反映されるページコンテンツやクエリ文字列は上流サービスによってログに記録される可能性があります。
