Extracto について
Extractoは、URLと型付きスキーマから検証済みJSONを生成するMCPサーバーです。同期・非同期の抽出に対応し、見つからないフィールドは推測せずnullで返します。
主な機能
- 01URLから型付きデータを抽出
- 02スキーマに基づく出力検証
- 03欠落フィールドをnullで返却
- 04非同期抽出ジョブの実行
- 05ジョブ状態と最近のジョブの確認
活用シーン
- 01ウェブページから構造化フィールドを収集
- 02重いページやボット対策ページを非同期で抽出
- 03指定したJSON形式で記事や商品情報を取得
MCP 対応
URL抽出と非同期ジョブ管理のツールをMCPクライアントに提供します。stdioサーバーの利用にはExtracto APIキーが必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y extracto-mcpEXTRACTO_API_KEYシークレットYour Extracto API key from https://app.getextracto.dev/keysEXTRACTO_BASE_URLOverride the API host (defaults to https://app.getextracto.dev)EXTRACTO_TIMEOUT_MSPer-request timeout in milliseconds (default 90000)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
4掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | はい | 抽出元となる公開 HTTPS URL。 |
| schema | object | はい | 各フィールド名を型に対応付けるオブジェクトです。型にはリテラル "string"、"number"、"boolean"、"array"、"object" のいずれか、リストを表す 1 要素の配列(文字列のリストなら ["string"]、オブジェクトのリストなら [{ "title": "string", "price": "number" }] など)、またはネストしたオブジェクト(例:{ "author": { "name": "string" } })を指定できます。できるだけ具体的な形を指定してください。例:{ "title": "string", "price": "number", "tags": ["string"], "reviews": [{ "user": "string", "stars": "number" }] }。 |
| examples | array | いいえ | 出力形式の基準として使用する少数ショット例を最大 3 件指定します。 |
詳細
extracto-mcp
Extracto 用の Model Context Protocol サーバーです。Claude、Cursor、Claude Code、およびあらゆる MCP クライアントで、URL とスキーマから、検証済みの型付き JSON を生成できます。プロンプトエンジニアリングも HTML の解析も不要で、存在しないフィールドが作り出されることもありません(不足しているデータは null で返されます)。
クイックスタート
Extracto API キーが必要です。app.getextracto.dev/keys で取得してください。
このサーバーは stdio 経由で動作し、npm で公開されているため、ほとんどのクライアントではこの設定ブロックを追加するだけで使えます。
Claude Desktop
claude_desktop_config.json を編集します(設定 → 開発者 → 設定を編集)。
{
"mcpServers": {
"extracto": {
"command": "npx",
"args": ["-y", "extracto-mcp"],
"env": { "EXTRACTO_API_KEY": "exa_live_your_key_here" }
}
}
}
Cursor
同じ設定ブロックを ~/.cursor/mcp.json(またはプロジェクトの .cursor/mcp.json)に追加します。
Claude Code
claude mcp add extracto -e EXTRACTO_API_KEY=exa_live_your_key_here -- npx -y extracto-mcp
クライアントを再起動して、抽出したい内容を尋ねます。たとえば、「extracto を使って github.com/facebook/react からタイトル、言語、スター数を取得して。」 と尋ねます。
ツール
| ツール | 説明 |
|---|---|
extract | 単一の URL から同期的に抽出します(最大約 90 秒)。{ data, meta } を返します。 |
extract_async | 負荷の高いページやボット対策が施されたページのために、非同期ジョブを送信します。ジョブ ID をすぐに返します。 |
get_job | 非同期ジョブのステータスと結果をポーリングします。 |
list_jobs | 最近の非同期ジョブを一覧表示します。 |
schema 引数
スキーマは、フィールド名を型に対応付けるオブジェクトです。型は次のとおりです。
- リテラル:
"string"、"number"、"boolean"、"array"、"object" - リストを表す要素数 1 の配列:
["string"]、または[{ "title": "string" }] - ネストされたオブジェクト:
{ "author": { "name": "string" } }
{
"title": "string",
"price": "number",
"tags": ["string"],
"reviews": [{ "user": "string", "stars": "number" }]
}
実際にページ上で見つかったフィールドのみが返されます。不足しているフィールドは推測されず、null になります。
設定
すべての設定は、MCP クライアントから渡す環境変数で行います。
| 変数 | 必須 | 説明 |
|---|---|---|
EXTRACTO_API_KEY | はい | app.getextracto.dev/keys で取得したキーです。 |
EXTRACTO_BASE_URL | いいえ | API ホストを上書きします(デフォルトは https://app.getextracto.dev)。 |
EXTRACTO_TIMEOUT_MS | いいえ | リクエストごとのタイムアウト(ミリ秒、デフォルトは 90000)です。 |
開発
npm install
npm run dev # run from source with tsx
npm run typecheck
npm run build # bundle to dist/ with tsup
関連項目
extracto— 公式の TypeScript/JavaScript SDK です。- getextracto.dev — ドキュメントと API リファレンスです。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。