Fouradata Mcp について
FourA MCP は、AI エージェントにウェブコンテンツを提供し、自動選択のほか、HTTP、プロキシローテーション、フルブラウザー描画を指定できます。型付きの出力と、抽出や監視向けのプロンプト、ワークフローを備えています。
主な機能
- 01取得方式の自動選択
- 02検証オプション付き HTTP リクエスト
- 03プロキシローテーション、再試行、国の指定
- 04JavaScript 対応ブラウザーセッション
- 05型付き応答と 6 種類のプロンプト
活用シーン
- 01商品情報の抽出や記事の整形
- 02複数 URL の価格監視
- 03エンドポイントの確認
- 04URL の一括取得
MCP 対応
MCP クライアントに 4 種類のウェブ取得ツールと 6 種類のプロンプトを提供します。stdio でローカル実行するか、FourA API キーでホスト済み Streamable HTTP エンドポイントに接続できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.foura.ai/mcpclaude mcp add --transport http ai-foura https://mcp.foura.ai/mcp{"mcpServers":{"ai-foura":{"type":"http","url":"https://mcp.foura.ai/mcp"}}}Cursor で開く{"servers":{"ai-foura":{"type":"http","url":"https://mcp.foura.ai/mcp"}}}VS Code で開く{"mcpServers":{"ai-foura":{"type":"http","url":"https://mcp.foura.ai/mcp"}}}{"mcpServers":{"ai-foura":{"serverUrl":"https://mcp.foura.ai/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
4| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| method | string | はい | HTTPメソッド(GET、POST、PUT、PATCH、DELETE、HEAD、OPTIONS、または PROPFIND/MKCOL のような任意の WebDAV 動詞) |
| url | string | はい | 公開対象 URL。プライベートまたは予約済みの対象は `ssrf_blocked` を返します。URL に {ts} を指定すると、現在の Unix タイムスタンプが挿入されます。例:https://api.example.com/v1/users。 |
| headers | array | いいえ | [name, value] タプル形式のカスタム HTTP ヘッダー。例:[["Accept", "application/json"], ["Referer", "https://google.com/"]] |
| unblocker | boolean | いいえ | User-Agent と Sec-Ch-Ua を含む完全なブラウザーヘッダーセットを送信します。デフォルトは true です。通常の HTTP リクエストを送信するには false に設定します。プロファイルの選択には有効化が必要で、無効の場合はエラーになります。 |
| profile | string | いいえ | 公開カタログ https://api.foura.ai/api/profiles にある正確なプロファイル ID。ID がない場合は browser/os/version を使用してください。 |
| browser | string | いいえ | 指定するブラウザー:Chrome、Edge、Safari、Firefox、Tor。プロファイル関連のフィールドをすべて省略すると、リクエストでは最新の Google Chrome が指定されます。 |
| os | string | いいえ | 指定するオペレーティングシステム:Windows、macOS、Android、iOS。ファミリー名を指定すると、その系列の任意のバージョンが受け入れられます。 |
| version | string | いいえ | 指定するブラウザーのバージョン。カタログに記載されているものを指定してください。複数の候補が一致する場合は、最も新しいものが選択されます。組み合わせが無効な場合は、利用可能な選択肢を示すエラーが返され、別のブラウザーに置き換えられることはありません。 |
| data | any | いいえ | リクエストボディ。文字列はそのまま送信され、オブジェクトは自動的に JSON にシリアライズされます。例:POST API 用の {"query": "hello"}。 |
| proxy | string | いいえ | オプションのプロキシ。形式は 2 種類です:(1)URL `http://host:port` または `socks5://host:port`;(2)同じ出口を再利用するための foura_proxy の base36 ID(例:`4DZ3VE`)。ローテーションする場合は foura_proxy を使用してください。 |
| timeout_ms | integer | いいえ | リクエスト全体のタイムアウト(ms)(最大 120000、デフォルト 15000) |
| connect_timeout_ms | integer | いいえ | TCP/TLS 接続を確立する際のタイムアウト(ms)(0-120000)。省略するとデフォルト値が使用されます。 |
| accept_timeout_ms | integer | いいえ | リクエスト送信後、最初のレスポンスバイトを受信するまでのタイムアウト(ms)(0-120000)。省略するとデフォルト値が使用されます。 |
| server_response_timeout_ms | integer | いいえ | サーバーがレスポンス全体を送信するまでのタイムアウト(ms)(0-120000)。省略するとデフォルト値が使用されます。 |
| dns_cache_timeout_sec | integer | いいえ | 解決したターゲットの DNS をキャッシュする時間(秒)(0-240)。省略するとデフォルト値が使用されます。 |
| followRedirects | integer | いいえ | 追従するリダイレクトの最大数(0-20)。省略するとリダイレクトへの追従は無効になります。 |
| tryJsonData | boolean | いいえ | true の場合、レスポンス本文に対して JSON.parse を試みます。成功すると、`data` は解析された値(通常はオブジェクトまたは配列)になります。解析に失敗した場合、`data` はエラーや警告なしで元の文字列のままになります。解析失敗を明示的に検出する必要がある場合は、false に設定するか省略してください。 |
| returnBuffer | boolean | いいえ | デコード済み文字列ではなく、シリアライズされた Buffer JSON 形式(`{type:"Buffer", data:[byte, ...]}`、バイト範囲 0-255)の生バイトを返します。バイナリレスポンス(画像、protobuf)に使用します。復元方法:Node では `Buffer.from(data.data)`、それ以外では `new Uint8Array(data.data)` を使用します。 |
| validate | object | いいえ | 取得後のレスポンス検証です。レスポンスがこれらのチェックに失敗すると、ツールはエラーエンベロープを返します。 |
| validate.status | object | いいえ | ステータスコード検証:どの HTTP ステータスコードを成功(accept)または失敗(fail)とみなすかを指定します。 |
| validate.status.accept | array | いいえ | 成功として扱う HTTP ステータスコード |
| validate.status.fail | array | いいえ | 失敗として扱う HTTP ステータスコード |
| validate.headers | object | いいえ | ヘッダー検証:許可対象のヘッダーに一致すると合格し、ブロックリスト対象のヘッダーに一致すると失敗します。 |
| validate.headers.accept | object | いいえ | 大文字と小文字を区別しないヘッダー部分文字列ルールです。リダイレクトチェーン内で名前と値のペアが 1 つ以上一致すると、レスポンスは合格します。 |
| validate.headers.fail | object | いいえ | 大文字と小文字を区別しないヘッダー部分文字列ルールです。名前と値のペアが 1 つでも一致すると、レスポンスは拒否されます。 |
| validate.data | object | いいえ | 本文検証:本文に期待する部分文字列(accept)が含まれていれば合格し、ブロック対象の部分文字列(fail)が含まれていれば失敗します。 |
| validate.data.accept | array | いいえ | レスポンス本文に含まれている必要がある部分文字列 |
| validate.data.fail | array | いいえ | レスポンス本文に含まれていてはならない部分文字列 |
| offload_large | boolean | いいえ | true の場合、50 KB 以上のレスポンス本文はインラインではなく resource_link として返されます。デフォルトは false です。返された offloaded_resource_uri は resources/read で読み取ります。 |
詳細
FourA MCP
AI エージェントのための信頼性の高いウェブアクセス。
エージェントに公開 URL を渡すだけです。ページに高速な HTTP リクエスト、プロキシのローテーション、または完全なブラウザーセッションが必要な場合でも、FourA がコンテンツを返します。
まずは foura_auto をお試しください。URL を渡すと、型付きコンテンツが返されます。適切な取得方法を選択し、よくあるブロックにも対応します。リクエスト経路を明示的に制御したい場合は、foura_single、foura_proxy、または foura_browser を使用してください。
| シンプルに始める | アクセスが難しいページにも対応 | 予測可能なエージェントのフローを構築 |
|---|---|---|
| ほとんどの URL に使えるデフォルトのツール 1 つ | HTTP、プロキシのローテーション、完全なブラウザー描画 | 型付き出力、安定したエラーコード、すぐに使える 6 つのプロンプト |
付属のワークフローでは、製品情報の抽出、記事の整理、価格の監視、エンドポイントの確認、URL の一括取得に対応しています。
Claude Desktop、Claude Code、Cursor、Windsurf、VS Code、または任意の MCP クライアントから使用できます。npm パッケージをローカルで実行するか、同じ FourA API キーを使ってホスト型の Streamable HTTP エンドポイントに接続できます。
API キーを取得 | MCP ドキュメントを読む | npm のパッケージを見る
ワンクリックインストール:
どちらのボタンも、YOUR_FOURA_API_KEY プレースホルダーを含む設定をあらかじめ入力します。お持ちのキーに置き換えてください。または、手動で claude mcp add foura -- npx -y @fouradata/mcp を実行してください(先に env に FOURA_API_KEY を設定してください)。クライアントごとの詳しい設定方法は以下をご覧ください。
クイックスタート - ローカル stdio(Claude Desktop 推奨)
foura.ai/dashboard/#api-keys で API キーを作成するか、既存のキーを表示します(形式は pk_live_...)。次の内容を MCP クライアントの設定に追加します。
{
"mcpServers": {
"foura": {
"command": "npx",
"args": ["-y", "@fouradata/mcp"],
"env": {
"FOURA_API_KEY": "pk_live_..."
}
}
}
}
Claude Desktop の注意点: 設定ファイルを編集する前に、Claude Desktop を完全に終了してください(macOS では
Cmd+Q)。アプリが起動したままだと、終了時にメモリ上の設定で編集内容が上書きされます。
npx コマンドは初回起動時にパッケージをダウンロードし、MCP クライアントのサブプロセスとして実行します。グローバルインストールは不要です。同じ JSON を各 MCP クライアントで使えます。異なるのは設定ファイルの場所だけです。
| クライアント | 設定ファイルの場所 |
|---|---|
| Claude Desktop(macOS) | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Claude Desktop(Windows) | %APPDATA%\Claude\claude_desktop_config.json |
| Claude Code | claude mcp add foura -- npx -y @fouradata/mcp(先に環境変数に FOURA_API_KEY を設定) |
| Cursor | ~/.cursor/mcp.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
| VS Code(MCP 拡張機能) | ワークスペース内の .vscode/mcp.json |
クライアントを再起動すると、ツールリストに foura_auto、foura_single、foura_proxy、foura_browser が表示され、/prompts の下に 6 つのプロンプトが表示されます。
クイックスタート - ホスト型(Streamable HTTP)
クライアントが Streamable HTTP トランスポートに対応している場合は、ローカルのサブプロセスを実行する代わりに、ホスト型エンドポイントを指定します。
{
"mcpServers": {
"foura": {
"url": "https://mcp.foura.ai/mcp",
"headers": {
"Authorization": "Bearer pk_live_..."
}
}
}
}
Claude Desktop では、上記の stdio 設定を使用します。mcp-remote を介してホスト型エンドポイントに接続することもできます。
{
"mcpServers": {
"foura": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.foura.ai/mcp", "--header", "Authorization: Bearer pk_live_..."]
}
}
}
ツール
foura_auto がデフォルトです。URL を渡すと、取得方法を自動で選択してコンテンツを返します。ほかの 3 つのツールでは、HTTP、プロキシのローテーション、ブラウザーによるレンダリングを直接制御できます。
4 つのツールはいずれも、MCP 仕様に従って readOnlyHint: true と openWorldHint: true が指定されています。クライアントは、ツール呼び出しをどのように表示または承認するかを判断する際に、これらの注釈を使用できます。
各レスポンスには、人が読めるテキスト(content)に加えて、ツールの outputSchema に照らして検証された、型付きの structuredContent JSON オブジェクトが含まれます。エージェントは文章を解析する代わりに、予測可能なレスポンス形式を利用できます。
foura_auto - スマート取得(デフォルト)
URL を渡すと、コンテンツが返されます。HTTP、プロキシのローテーション、ブラウザーによるレンダリングのどれを選ぶか迷う場合は、まずこれを使用してください。一般的なボット対策を処理し、プロキシ試行の調整も不要なため、クライアント側の設定を最小限に保てます。
{
"url": "https://example.com",
// optional: a substring the real page must contain, so auto can tell a
// real page from a challenge page on protected targets
"validate": { "data": { "accept": ["Example Domain"] } }
}
クライアント側の設定は意図的に最小限に抑えられています。必須の url に加え、任意で method、headers、data、validate、returnSession(デフォルトは true)、forceProxy(デフォルトは true)、timeout_ms(5000~180000、デフォルトは 120000)、ignoreProxies、exitClass(foura_proxy と同じく standard または premium)を指定できます。
structuredContent の形式は {status, headers, data, meta, session} です。meta は常に含まれ、{rung, solved, attempts, credits} の形式で、エージェントはリクエストがどのように完了したか、クレジットをいくつ使用したかを確認できます。session({proxy, cookies, userAgent})は、後続のリクエストで使えるようデフォルトで返されます(session.proxy を proxy フィールドに渡します)。省略するには returnSession: false を送信します。auto に total_time フィールドはありません。
exitClass: "premium" を指定すると、標準プールでページにアクセスできない場合に、auto がプレミアム出口に切り替えます。結果の exitClass には、どちらのクラスで取得できたかが示されます。まず標準プールが使用されます。プランのプレミアムトラフィックを使い切ると、呼び出しは標準プールで続行され、standard と報告されます。どちらのクラスもエラーではありません。プレミアム出口のないプランでは、呼び出しは code: "plan_limit_premium" として拒否されます。exitClass: "standard" を指定すると、auto はプレミアム出口を使用しません。
foura_single - 高速 HTTP
1 回の HTTP リクエストを送り、レスポンスを受け取ります。静的ページ、JSON API、サーバー側でレンダリングされる HTML に使用します。unblocker はデフォルトで true のため、リクエストにはすでにブラウザーのヘッダー一式が含まれています。通常の HTTP リクエストにするには false に設定してください。
{
"method": "GET",
"url": "https://example.com"
}
カスタムヘッダー、本文、ステージごとのタイムアウト、リダイレクト制御、JSON の自動解析、バイナリバッファーモード、組み込みのレスポンス検証(validate.status.accept、validate.data.fail など)に対応しています。foura_single がブロックされた場合(ステータス 403/429、CAPTCHA ページ、チャレンジレスポンスヘッダー、既知のチャレンジタイトルなど)は、まず別のブラウザープロファイル(後述)を試し、その後 foura_proxy に切り替えてください。まずは maxTries: 5 から始めます。保護された対象には 25-30 が必要な場合があります。ページのレンダリングに JavaScript も必要な場合は、foura_proxy が返す proxy ID を foura_browser.proxy に渡してください。
structuredContent の形式:{status, headers, data, total_time, ...}。対象がボットチェックを実行した場合、レスポンスには defense も含まれます。defense.solved: false は、本文が要求したコンテンツではなく、チャレンジページである可能性を示します。
表示するブラウザーの選択
リクエストではデフォルトで最新の Google Chrome が使用されます。対象によっては、あるブラウザーは受け入れても別のブラウザーは拒否することがあるため、foura_single と foura_proxy ではブラウザーを選択できます。
{
"method": "GET",
"url": "https://example.com",
"browser": "Firefox",
"os": "Windows"
}
browser-Chrome、Edge、Safari、Firefox、Torのいずれかです。os-Windows、macOS、Android、iOSのいずれかです。ファミリー名を指定すると、そのいずれかのバージョンが対象になります。カタログに記載された正確なラベルを使うと、さらに絞り込めます。version- そのブラウザーについてカタログに記載された任意のバージョンです。複数が一致する場合は、最も新しいものが優先されます。profile- すでにプロファイルがある場合は、カタログに記載された正確な ID を指定します。
全カタログは api.foura.ai/api/profiles で公開されており、キーは不要です。default フィールドには、何も指定しなかった場合にリクエストで使われるプロファイルが示されています。選択するには unblocker を有効にする必要があります。これはデフォルトで有効です。存在しない組み合わせを指定すると、利用可能な選択肢を示すエラーが返されるため、選択していないブラウザーでリクエストがひそかに送信されることはありません。
foura_proxy - リトライ機能付きローテーションプロキシ
foura_singleと同じターゲット形式ですが、ローテーションプロキシ経由でリクエストし、失敗時には自動で再試行します。直接のリクエストがブロックされる場合や、ターゲットが特定の出口国を必要とする場合に使用します。
{
"maxTries": 5,
"exitCountries": ["CZ", "GB"],
"request": {
"method": "GET",
"url": "https://example.com/pricing",
"browser": "Chrome",
"os": "Windows"
}
}
structuredContentには、成功したプロキシのエンコード済みIDであるproxyと、選択および再試行を含む外側の処理時間であるtotalが追加されます。応答を得るために別のブラウザーに切り替えた場合、profileには最終的に使用されたカタログのプロファイルが設定されます。次回の呼び出しでも同じブラウザーを使用するには、これをprofileとして渡してください。exitCountriesは省略可能です。値は前後の空白が削除され、大文字に変換されて重複が除かれます。出口が不明なプロキシは除外され、リクエストで指定されていない国にフォールバックすることはありません。選択には最新の国メタデータが使用され、通常は10分以内に更新されます。国を指定したリクエストが成功すると、その値がexitCountryとして返されます。該当するプロキシがない場合、結果のcodeは"no_eligible_proxy"になります。
内部のrequestには、foura_singleと同じブラウザープロファイルフィールド(browser、os、version、または完全一致のprofile)を指定します。
exitClass - 標準プールでは到達できないターゲット向けです。exitClass: "premium"を設定すると、標準プール内でのローテーションにとどまらず、プレミアム出口へのエスカレーションが可能になります。これは利用許可であり、使用を指示するものではありません。標準プールも引き続き応答を競い、通常は標準プールが先に成功します。また、プレミアム出口が試される前に標準プールが応答した場合、プレミアムトラフィックは消費されません。プレミアム出口が一度でも試された後は、その試行が失敗しても、そこで発生したトラフィックはプレミアム利用枠に計上されます。別の出口から応答があった時点でまだ実行中の試行は停止され、計上されません。応答にはexitClassとしてpremiumまたはstandardが返されるため、リクエストごとにどちらが処理したかを確認できます。プランのプレミアムトラフィックを使い切った場合も、standardが返されます。これは通常の結果であり、エラーではありません。exitClass: "standard"を指定すると、エスカレーションは完全に禁止されます。プレミアム出口のないプランでは、code: "plan_limit_premium"で呼び出しが拒否されます。
attemptReport - ローテーションの試行が尽きた理由を確認できます。foura_proxyの失敗結果には、エラーと併せて必ずこれが含まれます。summaryは1文です。内訳のカウントは、原因ごとに対処方法が異なる項目を分けています。noResponse(出口から応答がなかった)、defense(ボットチェックが検出された。名称はvendorsに記載)、contentRejected(HTTP 200でボットチェックはなく、独自のvalidate.dataのみで拒否された)、statusRejected、otherです。profilesTriedには、タスクがリクエストを送信したブラウザーが初回使用順に並びます。defaultは、リクエストを記述どおりに送信したことを意味します。contentRejectedが多い場合は、ページが取得された後に独自のルールで破棄されています。foura_singleでvalidateを指定せずに取得し、内容を確認してからルールを書き直してください。
難易度の高いWAFチャレンジには、maxTries: 25-30を使用してください。国の許可リストが必要な場合は、試行回数を増やすのではなくexitCountriesを設定してください。ターゲットでJavaScriptのレンダリングが必要な場合は、返されたproxy IDをfoura_browser.proxyに渡してください。
foura_browser - 完全なブラウザーセッション
実際のブラウザーセッションです。JavaScriptが実行され、DOMのレンダリングが完了し、Cookieが応答とともに返されます。ページがシングルページアプリの場合、最初の描画後にコンテンツが遅延読み込みされる場合、または実際のブラウザーで解除する必要があるボット対策チャレンジがある場合に使用します。
{
"url": "https://example.com/spa",
"timeout_ms": 15000,
"checkText": "data-table"
}
HTTP応答だけでは不十分な場合に使用してください。checkTextはナビゲーション完了後にレンダリング済みHTMLを一度検証します。待機やポーリングは行いません。指定した部分文字列が見つからない場合、呼び出しはエラーエンベロープとともに失敗します。これにより、必要なコンテンツがないまま200を返すページを検出できます。unblockerはデフォルトでtrueに設定されており、途中でサポート対象のボット対策やCAPTCHAチャレンジに対応します。ページをチャレンジ込みで読み込み時のまま返すには、falseに設定してください。
structuredContentの形式は、意図的にsingle/proxyとは異なります。{status, headers (object, not array), body (not data), cookies (full browser cookie shape), userAgent}です。
組み込みプロンプト
MCP クライアントの /prompts に、6 つのワークフローテンプレートが表示されます。これらは、手順を自分で指定しなくても、1 つ以上のツールを連携して実行します。
| プロンプト | 引数 | 動作 |
|---|---|---|
smart_fetch | url, must_contain?, extract? | 方法を選び、ボット対策に対応して、コンテンツを返すか抽出します |
scrape_product_page | url | ブラウザーセッションでタイトル、価格、画像、在庫、SKU を JSON として抽出します |
extract_article | url | 記事を取得し、必要に応じてプロキシ経由で再試行して、ページの装飾要素を取り除きます |
monitor_pricing | url, target_price? | 現在の価格を取得し、目標価格と比較します |
check_endpoint_health | url, expected_text? | 到達可能性、ステータス、コンテンツ、所要時間を検証します |
bulk_fetch_urls | urls(カンマ区切り) | URL を並列で取得し、ブロックされたものは再試行して、メタデータを返します |
各プロンプトは、LLM が適切なツールを使って実行するテンプレート化されたユーザーメッセージとして渡されます。プロンプト全文がコンテキストに追加されるのは、呼び出したときだけです。
レシピ全文と手動で使える代替プロンプトについては、foura.ai/docs/mcp/recipes をご覧ください。エラーコードの全一覧については、foura.ai/docs/mcp/errors をご覧ください。
認証
stdio モードでは FOURA_API_KEY を使用し、ホスト型エンドポイントでは Authorization: Bearer pk_live_... ヘッダーを使用します。1 つのキーで 4 つすべてのツールを認証できます。
キーはダッシュボードで管理できます。キーの作成、表示、ローテーション、無効化が可能です。キー管理の手順について詳しくは、foura.ai/docs/getting-started/authentication をご覧ください。
エラーエンベロープ - エージェントの再試行用の型付き契約
すべてのエラー(isError: true)には、最低限、次の 3 つのフィールドを含む structuredContent エンベロープが付属します。
{
"service": "auto" | "single" | "proxy" | "browser",
"code": "ssrf_blocked" | "auth_failed" | "rate_limited" | ...,
"error": "Human-readable message"
}
上流からステータスが返された場合は status(HTTP コード)も取得できます。また、レート制限や容量エラーでは、FourA API エンベロープに retryAfter、current.{concurrency, rpm}、limits.{maxConcurrency, maxRpm} が追加されます。
code | 発生条件 | 再試行しても安全ですか? |
|---|---|---|
ssrf_blocked | ターゲットがプライベートアドレスまたは予約済みアドレスに解決される | いいえ - URL を変更してください |
upstream_non_json | 上流から不正な形式の本文が返された | 場合によります - 調査してください |
bad_request(400) | FourA が入力形式を拒否した | いいえ - 引数を修正してください |
auth_failed(401) | キーがない、無効、または無効化されている | いいえ - キーを修正してください |
forbidden(403) | 認証済みだが許可されていない | いいえ |
not_found(404) | ターゲットまたはエンドポイントが存在しない | いいえ |
rate_limited(429) | RPM の上限に達した | はい - retryAfter の時間だけ待ってください |
at_capacity(503) | 同時実行数の上限に達した | はい - retryAfter の時間だけ待ってください |
service_disabled(503) | メンテナンス時間中 | はい - retryAfter の時間だけ待ってください |
service_unavailable(503) | 一般的な 503 エラー | はい - 短いバックオフを行ってください |
upstream_error(>=500) | 上流の 5xx エラー | はい - 指数バックオフを行ってください |
upstream_client_error(4xx) | その他の 4xx エラー | 通常はいいえ |
no_eligible_proxy | リクエストされた exitCountries に一致するプロキシがない | いいえ - 国の範囲を変更してください |
plan_limit_*(403/429) | ターゲットではなく、FourA のご利用プランによって呼び出しが拒否された | retryAfter の経過でのみ解消されます - 下記をご覧ください |
plan_limit_ コードは、呼び出しを拒否したプランの制限を示します。制限は credits、bandwidth、rate、concurrency、browser_daily、premium、feature のいずれかです。これはターゲットによるブロックではないため、同じ処理を別のツール経由で再試行すると、残りの利用枠を無駄に消費します。retryAfter がある場合はその時間が経過するまで待つか、プランを変更してください。
LLM エージェントは、説明文を解析せずに code を直接読み取って再試行ロジックに利用できます。仕様の参照先:foura.ai/docs/api/errors。
各結果に含まれる情報
各結果には、ツール固有のフィールドに加えて、呼び出しのコストと追跡方法が含まれます。
credits- この呼び出しで消費したクレジットです。処理は実行されているため、失敗時も含まれます。request_id- 呼び出しに対するFourAのIDです。サポートへの問い合わせ時に伝えてください。exitClass- プレミアム出口を介して呼び出しが処理された場合はpremiumです。foura_singleとfoura_browserでは、proxyがfoura_proxyまたはfoura_autoの検出したプレミアム出口を再利用した場合に設定されます。foura_proxyとfoura_autoでは、リクエストでexitClassが指定されている場合に報告されます。
ツールの組み合わせ - 同じ出口を再利用する
下位レベルのツールは組み合わせて使用できます。foura_proxy は、使用した出口のbase36 IDを返します。そのIDを foura_single.proxy または foura_browser.proxy に渡すと、次のリクエストで同じ出口を再利用できます。
// 1. Find a working exit. Difficult protected targets may need maxTries:25-30.
const r = await foura_proxy({
maxTries: 30,
request: { method: "GET", url: "https://probe.example.com" }
});
// Returns { status: 200, proxy: "4DZ3VE", ... }
// 2. Reuse it for follow-up HTTP
await foura_single({ method: "GET", url: "https://target/api", proxy: r.proxy });
// 3. Or render JavaScript through the same exit.
await foura_browser({ url: "https://target/spa", proxy: r.proxy });
保護されたJavaScriptページの場合は、foura_browser を呼び出す前に foura_proxy で機能するルートを見つけてください。先にブラウザーを起動すると、実際のコンテンツが読み込まれる前にチャレンジページが返されることがあります。
次の foura_proxy 呼び出しで別のプロキシを選択するには、前回のIDを ignoreProxies: ["4DZ3VE"] として渡します。foura_single と foura_browser の proxy フィールドには、独自のリストがある場合、URL(http://host:port、socks5://...)を直接指定することもできます。
大きなレスポンス - offload_large(デフォルト:インライン)
デフォルトでは(v0.2.0以降)、レスポンス本文全体がサイズに関係なく structuredContent にインラインで返されます。これはすべてのMCPクライアントで動作します。
クライアントがMCPの resources/read に対応しており(大きなページでトークンを節約したい場合)、ツール呼び出しごとに offload_large: true を指定してください。50 KB以上のレスポンスは resource_link として返され、クライアントは必要なときにのみ本文を取得します。リソースは1時間利用できます。
{
"method": "GET",
"url": "https://en.wikipedia.org/wiki/Web_scraping",
"offload_large": true // opt in for token savings
}
MCPリソースリンクへの対応状況はクライアントによって異なります。クライアントが resource_link ブロックを読み取れない場合は、offload_large をデフォルトの false のままにしてください。
オフロードされたリソースを読み取れるのは、そのリソースを作成したAPIキーだけです。
制限と責任ある利用
- プライベートなターゲットへのアクセスは拒否されます。 プライベートアドレスや予約済みアドレスへのリクエストはMCPレイヤーでブロックされます。パブリックインターネット上のホストにのみ転送されます。
- レート制限はサービスごとにFourA APIで適用されます。並行処理数とRPMが対象です。詳細は foura.ai/docs/api/rate-limits をご覧ください。
FourAは、アクセスする権限のある公開コンテンツに対してのみ、対象サイトの利用規約および適用される法律に従って使用してください。
自分で実行する
npx -y @fouradata/mcp でnpmからstdioサーバーを直接実行するか、Streamable HTTPトランスポート用に同梱の Dockerfile をビルドしてください。
設定可能な環境変数:
| 変数 | デフォルト | 用途 |
|---|---|---|
PORT | 3076 | HTTP待ち受けポート |
FOURA_API_BASE | https://api.foura.ai/api | 上流FourA RESTベースURL |
FOURA_MCP_PAYLOADS_DIR | /data/payloads | 50 KB以上のレスポンスをディスクにキャッシュする場所 |
ローカルでのビルドとテストのワークフローについては、DEVELOPMENT.md をご覧ください。
ライセンス
MITです。LICENSE をご覧ください。
リンク
- FourA(ウェブスクレイピングAPI):https://foura.ai
- MCPサーバーページ:https://foura.ai/mcp
- ソース(GitHub):https://github.com/fouradata/mcp
- npmパッケージ:https://www.npmjs.com/package/@fouradata/mcp
- APIドキュメント:https://foura.ai/docs
- MCPサーバーリファレンス:https://foura.ai/docs/mcp/server
- MCPエラーコード:https://foura.ai/docs/mcp/errors
- MCPレシピ:https://foura.ai/docs/mcp/recipes
- REST APIエラー:https://foura.ai/docs/api/errors
- MCP仕様:https://modelcontextprotocol.io
- キーを取得:https://foura.ai/dashboard/#api-keys
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。