mcpField
I
Intercept

Intercept

ローカル
github.com/bighippomanブラウザ自動化913 週間前に更新

Intercept について

Interceptは、専用ハンドラーと複数の代替取得方法を使い、ウェブページを整形済みMarkdownとして返すMCPサーバーです。検索や取得、特定形式のURLからの情報抽出を行うAIクライアント向けです。

主な機能

  1. 01URLをMarkdownで取得
  2. 02検索・調査ツール
  3. 03最大10件の一括取得
  4. 04フィールドと表の抽出
  5. 05サイト別ハンドラー
  6. 06メモリ・共有キャッシュ

活用シーン

  1. 01AIクライアントでウェブページを読む
  2. 02検索結果からトピックを調査
  3. 03複数ページを並行取得
  4. 04指定した項目や表を抽出

MCP 対応

MCPクライアントに取得、検索、調査、一括取得、抽出のツールと、最近のセッションを示すリソース、調査用プロンプトを提供します。stdioのMCPサーバーに対応するクライアントで利用できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"intercept": {
"command": "npx",
"args": [
"-y",
"intercept-mcp"
],
"env": {
"BRAVE_API_KEY": "<BRAVE_API_KEY>"
}
}
}
}
起動コマンドnpx -y intercept-mcp
設定が必要な環境変数
BRAVE_API_KEYシークレットBrave Search API key for the search tool (free tier: 2,000 queries/month). Not needed for the fetch tool.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmintercept-mcp3.0.8

ツール

5

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
urlstringはい取得する URL
maxTierintegerいいえこの階層で停止します(1-5、デフォルトは 5)。値が小さいほど高速ですが、フォールバックが少なくなります。
maxLengthintegerいいえ返す最大文字数(デフォルトは 50000)
startIndexintegerいいえ長いコンテンツをページ分割する際の開始文字オフセット(デフォルトは 0)
noCachebooleanいいえセッションキャッシュと共有キャッシュをスキップして、最新のコンテンツを取得します

詳細

intercept-mcp

AI がウェブを読み取れるようにします。コマンドを 1 つ実行するだけで、API キーは不要です。

これがないと、AI が URL にアクセスしても 403 エラーやアクセス制限に阻まれたり、生の HTML の壁に直面したりします。intercept があれば、ほとんどの場合、すぐに使えるクリーンな Markdown 形式でコンテンツを取得できます。

ツイート、YouTube 動画(利用可能な場合はトランスクリプト付き)、arXiv の論文、PDF、Wikipedia の記事、GitHub リポジトリに対応しています。最初の方法で失敗した場合は、諦める前に最大 14 通りの方法を試します。

Claude Code、Claude Desktop、Codex、Cursor、Windsurf、Cline など、あらゆる MCP クライアントで動作します。

intercept-mcp MCP server

インストール

Claude Code
claude mcp add intercept -s user -- npx -y intercept-mcp
Codex
codex mcp add intercept -- npx -y intercept-mcp
Cursor

Settings → MCP → Add Server:

{
  "mcpServers": {
    "intercept": {
      "command": "npx",
      "args": ["-y", "intercept-mcp"]
    }
  }
}
Windsurf

Settings → MCP → Add Server → 上記と同じ JSON 設定。

Claude Desktop

claude_desktop_config.json に追加します:

{
  "mcpServers": {
    "intercept": {
      "command": "npx",
      "args": ["-y", "intercept-mcp"]
    }
  }
}
その他の MCP クライアント

stdio MCP サーバーに対応するクライアントであれば、npx -y intercept-mcp を実行できます。

fetch ツールに API キーは不要です。

動作の仕組み

URL は次の 4 段階で処理されます:

1. サイト固有のハンドラー

既知の URL パターンは、フォールバック処理に進む前に専用のハンドラーへ振り分けられます:

パターンハンドラー取得できる内容
twitter.com/*/status/*、x.com/*/status/*Twitter/Xツイート本文、投稿者、メディア、エンゲージメント統計(サードパーティ API 経由)
youtube.com/watch?v=*、youtu.be/*YouTubeタイトル、チャンネル、再生時間、再生回数、説明、トランスクリプト(字幕が利用可能な場合)
arxiv.org/abs/*、arxiv.org/pdf/*arXiv論文のメタデータ、著者、要旨、カテゴリ
*.pdfPDF抽出したテキスト(テキストレイヤーのある PDF のみ)
*.wikipedia.org/wiki/*WikipediaWikimedia REST API 経由で取得したクリーンな記事コンテンツ
github.com/{owner}/{repo}GitHubREADME.md の生コンテンツ
github.com/{o}/{r}/blob/{ref}/{path}GitHubファイルの生コンテンツ。言語ごとのコードフェンス付き
github.com/{o}/{r}/issues/{n}、/pull/{n}GitHubIssue/PR のタイトル、状態、本文、差分の統計、コメント(GitHub API 経由)
github.com/{o}/{r}/releases/tag/{t}、/releases/latestGitHubリリースノート(GitHub API 経由)

GitHub API のエンドポイントは認証なしで動作します(1 時間あたり 60 リクエスト)。上限を引き上げるには、GITHUB_TOKEN を設定してください。

2. 共有キャッシュ(agentsweb.org)

フェッチャーにアクセスする前に、すべてのリクエストで agentsweb.org を確認します。agentsweb.org は、JavaScript/SPA のレンダリング(Cloudflare Browser Run 経由の React、Vue、Angular)に対応する 9 ソース並列フェッチパイプラインを備えた、AI エージェント向けのグローバル共有 Markdown キャッシュです。ほかのエージェントがすでにこの URL を取得していれば、50 ミリ秒未満で結果を取得できます。

取得に成功すると、コンテンツは自動的にキャッシュへ還元されます。独立したインスタンスが同じ URL を取得し、同じコンテンツを確認するたびに信頼度が上がる、自己修復型のコンセンサスモデルによってエントリーの信頼性が高まります。

INTERCEPT_SHARED_CACHE=false で共有キャッシュを完全に無効化できます。また、INTERCEPT_CACHE_READ_ONLY=true を設定すると、読み取り専用モード(キャッシュを利用するが、キャッシュには登録しない)になります。

agentsweb.org API

agentsweb.org には、直接利用できる単独のエンドポイントもあります:

  • /web?q= — ウェブを検索
  • /research?q= — 検索、フェッチ、キャッシュを 1 回の呼び出しで実行
  • /fetch?url= — 要求に応じてフェッチし、自動的にキャッシュ

API の詳細については、agentsweb.org/docs をご覧ください。

3. フォールバックパイプライン

一致するハンドラーがない場合(またはハンドラーが何も返さない場合)、URL は複数階層のパイプラインに進みます。

Tierフェッチャー戦略
0agentsweb.orgグローバル共有 Markdown キャッシュ — 別のエージェントがすでにこの URL を取得していれば即座に返します
1Cloudflare Browser RunJS/SPA のレンダリングと Markdown 抽出 — agentsweb.org でも使用されます(任意。API トークンが必要です)
1Jina Readerクリーンな Markdown 抽出サービス
2Wayback Machinearchive.org に保存されたバージョン
2Arquivo.ptポルトガルのウェブアーカイブ(幅広い国際的カバレッジ)
2Common CrawlCommon Crawl のインデックスと S3 から読み込むペタバイト規模のウェブアーカイブ — オリジンサーバーのレート制限、ボット検出、ペイウォールの影響を受けません
2CodetabsCORS プロキシ
3Markdown エンドポイントサイトにネイティブな Markdown バージョン(<path>.md + Accept: text/markdown)を要求します
3archive.phtimemap API とステルス TLS フェッチによるアーカイブ済みスナップショット
3Raw fetchブラウザーのヘッダーを使用した直接 GET と Turndown による Markdown 変換
3Stealth fetchgot-scraping によるブラウザー TLS フィンガープリントの偽装(任意。以下を参照)
3FlareSolverrCloudflare/DDoS-Guard 用の実ブラウザーによるチャレンジ解決(任意。FlareSolverr インスタンスが必要です)
3Web unlocker商用アンロッカー API — 住宅用 IP のローテーション + レンダリング + CAPTCHA(任意。BYO キーが必要で、リクエストごとに有料)
4RSS、CrossRef、Semantic Scholar、HN、Redditメタデータ/ディスカッションのフォールバック
5OG MetaOpen Graph タグ(確実なフォールバック)

Tier 2 のフェッチャーは並列実行されます。複数のフェッチに成功した場合は、最も品質の高い結果が採用されます。それ以外の階層は順番に実行されます。

すべてのフェッチャーは Turndown を介して、プレーンテキストではなく適切な Markdown(見出し、リンク、太字、表、コードブロック)を返します。

4. キャッシュ

結果は TTL 付きでメモリ内にキャッシュされます(成功時は 60 分、失敗時は 5 分)。最大 250 件を保持し、LRU 方式で古い項目を削除します。失敗した URL は、既知の無効な URL を再試行しないようキャッシュされます。3 つの設定値はすべて INTERCEPT_CACHE_TTL_MS、INTERCEPT_CACHE_FAILURE_TTL_MS、INTERCEPT_CACHE_SIZE で変更できます。

ツール

fetch

URL を取得し、クリーンな Markdown としてコンテンツを返します。

  • url(string、必須)— 取得する URL
  • maxTier(number、任意、1~5)— 速度を優先する場合に、指定した階層で処理を終了します
  • maxLength(number、任意、デフォルト 50000)— 返す最大文字数
  • startIndex(number、任意、デフォルト 0)— 長いコンテンツをページ分割する際の開始文字位置
  • noCache(boolean、任意)— セッションキャッシュと共有キャッシュをスキップし、ライブ取得します

長いページは maxLength で切り詰められ、続きのコンテンツを取得するための startIndex が通知されます。構造化出力では source、quality、contentLength、truncated、nextStartIndex、cacheAgeSeconds が返されるため、エージェントはこれらの値を使ってプログラム上で分岐できます。

直接指定された画像 URL(.png、.jpg、.gif、.webp、最大 5 MB)は、テキストではなく MCP の 画像ブロックとして返されるため、エージェント自身のビジョンモデルでグラフ、図、スクリーンショット、スキャン文書を読み取れます。構造化出力では source: "image"、mimeType、bytes が返されます。

fetch_batch

同じハンドラー/フォールバックチェーンを通じて、最大 10 件の URL を並列取得します。

  • urls(string[]、必須、1~10)— 取得する URL
  • maxTier、noCache — fetch と同じ
  • maxLength(number、任意、デフォルト 20000)— URL ごとの文字数上限
research

ウェブを検索し、上位の結果を 1 回の呼び出しで取得します — 検索後に複数回フェッチする必要はありません。

  • query(string、必須)— 検索クエリ
  • count(number、任意、1~5、デフォルト 3)— 取得する結果の数
  • maxLength(number、任意、デフォルト 20000)— 結果ごとの文字数上限
  • site(string、任意)— ドメインを指定して検索を限定します
  • freshness(string、任意)— day、week、month、または year
search

ウェブを検索し、結果を返します。

  • query (string, required) — 検索クエリ
  • count (number, optional, 1-20, default 5) — 結果の件数
  • site (string, optional) — 検索対象をドメインに限定します
  • freshness (string, optional) — day、week、month、year のいずれか
  • page (number, optional, 1-10) — ページネーション用の結果ページ

BRAVE_API_KEY が設定されている場合は Brave Search API を使用し、次に SEARXNG_URL が設定されている場合は SearXNG を使用し、最後の手段として信頼性の低い DuckDuckGo を使用します。DuckDuckGo へのフォールバックでは、freshness と page は無視されます。

extract

ページから特定の値を Markdown の文章ではなく JSON として抽出します。ページ全体ではなく、特定のデータが必要な場合に使用します。ドメインごとの認証とプロキシに対応しています。

  • url (string, required) — 抽出元の URL
  • selectors (object, optional) — フィールド名 → CSS セレクターのマップです。各値には、最初に一致した要素のテキストを返すセレクター文字列、または { selector, attr?, all? } を指定します。attr は属性(例:href)を抽出し、all: true は一致したすべての要素を配列として返します。
  • tables (boolean, optional) — すべての HTML テーブルを行オブジェクトの配列に変換します(selectors が指定されていない場合のデフォルトは true です)。
{
  "url": "https://shop.example.com/item",
  "selectors": {
    "title": "h1",
    "price": ".price",
    "images": { "selector": "img.gallery", "attr": "src", "all": true }
  }
}

抽出された fields や tables を構造化出力として返します。

リソース

intercept://session/recent

このセッションで取得・キャッシュされた URL の Markdown リストです。新しいものが先に表示されます。いずれも再取得は即座に完了します。

プロンプト

research-topic

トピックを検索し、複数の情報源をまとめた要約を作成するために上位の結果を取得します。

  • topic (string) — 調査するトピック
  • depth (string, default "3") — 取得する上位結果の件数
extract-article

URL を取得し、コンテンツから要点を抽出します。

  • url (string) — 取得して要約する URL

環境変数

変数必須説明
BRAVE_API_KEYいいえ検索に使用するBrave Search APIキー
SEARXNG_URLいいえセルフホスト可能な SearXNG インスタンスの URL(推奨)
GITHUB_TOKENいいえissue/PR/リリースハンドラーの API レート制限を引き上げる GitHub トークン
INTERCEPT_AUTHいいえログイン済みのコンテンツを取得するためのドメイン → ヘッダー/Cookie の JSON マップ(ドメインごとの認証を参照)
CF_API_TOKENいいえ「Browser Rendering - Edit」権限を持つ Cloudflare API トークン
CF_ACCOUNT_IDいいえCloudflare アカウント ID(CF_API_TOKEN を設定する場合に必須)
USE_STEALTH_FETCHいいえステルスフェッチャーを有効にするには true に設定します(以下の警告を参照)
FLARESOLVERR_URLいいえCloudflare/DDoS-Guard のチャレンジを解決するためのFlareSolverrインスタンスの URL(例:http://localhost:8191)
WEB_UNLOCKER_URLいいえScrapingBee/ScraperAPI/ZenRows などの商用ウェブアンロッカー用の GET テンプレート({url} プレースホルダーと API キーを含む)。最も取得が難しいサイト向けの有料の最終手段です
INTERCEPT_SHARED_CACHEいいえagentsweb.org の共有キャッシュを無効にするには false に設定します
INTERCEPT_CACHE_READ_ONLYいいえ共有キャッシュを利用するだけで、キャッシュへの書き込みを行わないようにするには true に設定します
INTERCEPT_CACHE_TTL_MSいいえ成功した取得結果のメモリー内キャッシュ TTL(ミリ秒、デフォルトは 3600000 = 60 分)
INTERCEPT_CACHE_FAILURE_TTL_MSいいえ失敗した取得結果のメモリー内キャッシュ TTL(ミリ秒、デフォルトは 300000 = 5 分)
INTERCEPT_CACHE_SIZEいいえメモリー内キャッシュの最大エントリー数(デフォルトは 250)
HTTPS_PROXY / HTTP_PROXYいいえ標準的なプロキシのパススルーです。すべての送信フェッチ(ステルスフェッチを含む)をプロキシ経由にします。NO_PROXY を尊重します。
INTERCEPT_PROXIESいいえ順次ローテーションする HTTP(S) プロキシのカンマ/スペース区切りリストです。応答がブロックされた場合は、次のプロキシを使って自動的に再試行します。HTTPS_PROXY より優先されます。

検索: DuckDuckGo にフォールバックしますが、レート制限があり、信頼性も高くありません。本番環境で使用する場合は、SearXNGをセルフホストして SEARXNG_URL を設定するか(以下を参照)、Brave Search API キーを取得してください。

フェッチ: キーなしで動作します。CF_API_TOKEN と CF_ACCOUNT_ID を設定すると、JavaScript を多用するページ(SPA、React サイト)向けに Cloudflare Browser Run(旧 Browser Rendering)が有効になります。

ステルスフェッチ(USE_STEALTH_FETCH)

ご自身の責任で使用してください。 有効にすると、got-scrapingを使用して、実際のブラウザーの TLS フィンガープリント(Chrome/Firefox の暗号スイート、HTTP/2 設定、ヘッダーの順序)を偽装するフェッチャーが追加されます。これにより、自動リクエストをブロックするサイトで、ボット検出や CAPTCHA の発生を回避できる場合があります。

このフェッチャーは、通常の raw フェッチの後、ティア 3 で実行されます。raw フェッチがブロックされた場合(CAPTCHA、Cloudflare チャレンジ、403)、ステルスフェッチャーがブラウザーを偽装して再試行します。

この機能は、一部のウェブサイトの利用規約に違反する可能性があります。 intercept-mcp の作者は、この機能の使用方法について一切責任を負いません。デフォルトでは無効になっており、使用するには明示的に有効にする必要があります。

チャレンジの解決(FLARESOLVERR_URL)

ステルスフェッチャーはブラウザーの TLS フィンガープリントを偽装しますが、JavaScript チャレンジを実行することはできません。そのため、Cloudflare の「Checking your browser」や DDoS-Guard のインタースティシャルで保護されたサイトは、引き続きブロックされます。FlareSolverrは実際のヘッドレスブラウザーを実行してチャレンジを解決し、ページの HTML を返します。

Docker で起動します:

docker run -d -p 8191:8191 ghcr.io/flaresolverr/flaresolverr:latest

次に、FLARESOLVERR_URL=http://localhost:8191 を設定します。raw フェッチャーとステルスフェッチャーの後の最終手段としてティア 3 で実行され、この変数が設定されている場合にのみ使用されます。チャレンジの解決には 30~60 秒かかることがあるため、最も遅いフェッチャーですが、ほかの方法では取得できないページを取得できます。

商用ウェブアンロッカー(WEB_UNLOCKER_URL)

最も難しいターゲット、つまり住宅用 IP のローテーションと実際のブラウザーでのレンダリング、CAPTCHA 対応をすべて必要とするサイトには、商用アンロッカーが現実的な解決策です。intercept-mcp は、API キーを含む {url} プレースホルダーを使ったテンプレートを介して、「この URL を GET して HTML を返す」エンドポイントを公開するあらゆるアンロッカーに対応しています。

# ScrapingBee
WEB_UNLOCKER_URL='https://app.scrapingbee.com/api/v1/?api_key=KEY&render_js=true&url={url}'
# ScraperAPI
WEB_UNLOCKER_URL='https://api.scraperapi.com/?api_key=KEY&render=true&url={url}'
# ZenRows
WEB_UNLOCKER_URL='https://api.zenrows.com/v1/?apikey=KEY&js_render=true&url={url}'

intercept は {url} をターゲット URL(URL エンコード済み)に置き換え、返された HTML(または HTML を含む JSON)を Markdown に変換します。これはティア 3 で、有料の最終手段として無料のフェッチャーの後に実行され、この変数が設定されている場合に限られます。テンプレート内の認証情報が送信されるのはアンロッカーのみで、ターゲットに送信されることはありません。Bright Data のプロキシベースの Web Unlocker は認証付きプロキシにすぎないため、代わりに HTTPS_PROXY / INTERCEPT_PROXIES を使用してください。リクエストごとに課金されます。

独自プロキシの使用(HTTPS_PROXY)

生のフェッチがブロックされ始めた場合、通常、最も効果的な対処法は、より高度なフィンガープリントではなく、クリーンな外向き IP を使うことです。intercept-mcp は標準の HTTPS_PROXY / HTTP_PROXY / NO_PROXY 環境変数に対応しているため、すでに利用している任意のプロキシ経由ですべての外向きトラフィックをルーティングできます。

HTTPS_PROXY=http://user:[email protected]:8080 npx intercept-mcp

これは、セルフホストの Squid、Tailscale の出口ノード、3proxy を実行する 5 ドルの VPS、商用の住宅用プロキシ(Bright Data、Oxylabs など)を含む、あらゆる HTTP(S) プロキシで動作します。ステルスフェッチャーと got-scraping の呼び出しも自動的にこの設定を使用します。

プロキシローテーション(INTERCEPT_PROXIES)

プロキシが 1 つだけだと、IP も 1 つしか使われず、負荷が高いとその IP 自体がブロックされることがあります。INTERCEPT_PROXIES にコンマまたはスペース区切りのリストを設定すると、intercept-mcp は順番にプロキシを使用し、リクエストがブロックされる(HTTP 403、429、451、503)かエラーになった場合は、次のプロキシ経由で自動的に再試行します。

INTERCEPT_PROXIES="http://user:[email protected]:8080,http://user:[email protected]:8080,http://p3.example.com:8080" npx intercept-mcp

リクエストはリスト内のプロキシに分散され、ブロックされたレスポンスは、あきらめる前に別の出口経由で最大 3 回試行されます。そのため、安価なプロキシをいくつか用意するか、ローテーションする住宅用エンドポイントをリストに複数回指定すれば、プロキシプールのように動作します。INTERCEPT_PROXIES は HTTPS_PROXY より優先され、リクエストごとに適用されます(そのため、ステルスと archive.ph の got-scraping 呼び出しもローテーションします)。HTTP(S) プロキシを指定できます。無効な項目は無視されます。

ドメインごとの認証(INTERCEPT_AUTH)

ウェブの大半はログインが必要です。INTERCEPT_AUTH を使うと、特定のオリジンへのリクエストに独自のヘッダーや Cookie を付加できるため、フェッチツールで、正当にログインしているコンテンツ(有料サブスクリプション、非公開ダッシュボード、イントラネット、認証が必要な API)を読み取れます。

ドメインをヘッダーマップに対応付ける JSON オブジェクトです。ドメインはサブドメインにも適用されます。

INTERCEPT_AUTH='{
  "nytimes.com": { "Cookie": "nyt-s=...; nyt-a=..." },
  "api.acme.com": { "Authorization": "Bearer eyJ..." }
}' npx intercept-mcp

Cookie を取得するには、ログインした状態でサイトを開き、DevTools → Network を開いて、そのドメインへの任意のリクエストから Cookie リクエストヘッダーをコピーしてください。

セキュリティモデル — 使用する前にお読みください
  • 認証情報は、設定されたオリジンにのみ送信されます。 ヘッダーは、実際に接続しているホストに基づいて設定されます。intercept が Jina、ウェブアーカイブ、CORS プロキシ、FlareSolverr、または共有キャッシュを介してページを取得する場合、これらの仲介サービスは別のホストに接続するため、Cookie/トークンが仲介サービスに送信されることはありません。認証情報を送信するのは、オリジンへの直接取得のみです。
  • 認証済みのレスポンスが共有キャッシュに触れることはありません。 リクエストが INTERCEPT_AUTH のエントリに一致すると、intercept はその URL について、公開されている agentsweb.org のキャッシュを読み取ることも書き込むこともありません。そのため、非公開または有料のコンテンツが公開されることはなく、他のユーザーの匿名ビューではなく、常にあなたの認証済みビューを取得できます。(プロセス内のセッションキャッシュは引き続き適用されます。)
  • 値は秘密情報として扱ってください。 有効なセッショントークンが含まれています。環境変数はプロセスとその子プロセスから参照でき、シェルの履歴やプロセス一覧に記録される場合があります。シークレットマネージャーまたはコミット対象外の env ファイルを使用し、決してコミットしないでください。Cookie には有効期限があるため、定期的に更新する必要があります。
  • 許可された用途で使用する責任は、あなたにあります。 自分が所有するアカウント、または使用を許可されたアカウントの認証情報のみを指定し、各サイトの利用規約を遵守してください。intercept は、指定されたヘッダーをそのまま転送するだけです。

SearXNG のセルフホスト

安定した検索を利用するには、Docker で SearXNG をセルフホストしてください。リポジトリに設定ファイルが含まれています。

git clone https://github.com/bighippoman/intercept-mcp.git
cd intercept-mcp/searxng && docker compose up -d

次に、SEARXNG_URL=http://localhost:8888 を設定します。レート制限や CAPTCHA はなく、Google、Bing、DuckDuckGo、Wikipedia、Brave の検索結果を集約します。

または、既存の SearXNG インスタンスを使用し、SEARXNG_URL にその URL を設定してください。

URL の正規化

受信した URL は自動的に整理されます。

  • 60 種類以上のトラッキングパラメーター(UTM、クリック ID、アナリティクス、A/B テストなど)を削除します
  • ハッシュフラグメントを削除します
  • HTTPS にアップグレードします
  • AMP の不要な要素を整理します
  • 機能に必要なパラメーター(ref、format、page、offset、limit)は保持します

SSRF 対策

エージェントは、信頼できないウェブコンテンツから取得した URL を渡すため、フェッチツールはローカルまたは内部インフラストラクチャを指す URL を拒否します。対象は、ループバックおよびプライベート IPv4/IPv6 範囲、リンクローカルアドレス(169.254.169.254 のクラウドメタデータエンドポイントを含む)、CGNAT、マルチキャスト/予約済み範囲、ローカルホスト名(localhost、*.local、*.internal、*.home.arpa)です。URL パーサーによって正規化される代替表記(10 進数、16 進数)を含め、リテラル IP は検査されます。DNS は解決されないため、プライベート IP を指すパブリックホスト名は検出されません。

コンテンツ品質の検出

各フェッチャーの結果を品質評価します。次の場合は自動的に失敗と判定します。

  • CAPTCHA/Cloudflare のチャレンジ
  • ログイン画面
  • 本文に含まれる HTTP エラーページ
  • 200 文字未満のコンテンツ

要件

  • Node.js >= 20
  • 基本的な使用に API キーは不要です

コメント

MCP は初めてですか?

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

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