mcpField
S
ScrAPI MCP Server

ScrAPI MCP Server

ローカル
scrapi.techブラウザ自動化18今日更新

ScrAPI MCP Server について

ScrAPI MCP Server は ScrAPI を通じて MCP クライアントにウェブページのスクレイピング機能を提供します。HTML と Markdown を返し、取得前にブラウザー操作を実行できます。

主な機能

  1. 01ページをスクレイピングして HTML を返す
  2. 02ページをスクレイピングして Markdown を返す
  3. 03取得前のブラウザー操作
  4. 04stdio と Streamable HTTP に対応

活用シーン

  1. 01分析用の記事テキストの抽出
  2. 02ページのリンク、表、メタデータの取得
  3. 03Cookie バナーへの同意後にページを取得

MCP 対応

stdio または Streamable HTTP 経由で、HTML または Markdown を返すスクレイピングツールを MCP クライアントに公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"scrapi": {
"command": "npx",
"args": [
"-y",
"@deventerprisesoftware/scrapi-mcp"
]
}
}
}
起動コマンドnpx -y @deventerprisesoftware/scrapi-mcp

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

パッケージ
npm@deventerprisesoftware/scrapi-mcp

ツール

2

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

パラメーター型必須説明
urlstringはいスクレイピングする URL
browserCommandsstringいいえスクレイピング前に実行する任意の JSON ブラウザーコマンド配列。使用可能なコマンドと形式についてはツールの説明を参照してください。

詳細

ScrAPI ロゴ

ScrAPI MCP サーバー

License: MIT NPM Downloads Docker Pulls LightNow capabilities scrapi-mcp MCP server

ScrAPI MCP サーバーを使うと、MCP 対応クライアントから ScrAPI 経由で Web ページをスクレイピングできます。

ScrAPI は、ページの取得に実際のブラウザーセッション、CAPTCHA の解決、住宅用プロキシへのアクセス、Cookie バナーの処理、JavaScript のレンダリング、位置情報に応じた取得、クリックやスクロールなどのスクレイピング前のブラウザー操作が必要な場合に便利です。

目次

機能

  • ScrAPI 経由で、有効な https:// または http:// URL をスクレイピングします。
  • 生の HTML または読みやすい Markdown を返します。
  • スクレイピング前にブラウザーコマンドを実行します。
  • デスクトップ MCP クライアント向けに stdio トランスポートを使用します。
  • リモート MCP クライアントとローカルテスト向けに Streamable HTTP トランスポートを使用します。
  • npx、Docker、Smithery、またはソースから実行できます。

利用可能なツール

scrape_url_html

URL をスクレイピングし、結果を HTML として返します。

ページの構造、リンク、テーブル、埋め込みメタデータ、または独自の後続処理が必要な場合に使用します。

入力:

名前型必須説明
urlstringはいスクレイピングする絶対 URL です。有効な URL である必要があります。
browserCommandsstringいいえスクレイピング前に実行するブラウザーコマンドを格納した JSON 配列文字列です。

戻り値:

  • リクエストされたページの text/html コンテンツ。
  • 上流リクエストが失敗した場合は、ScrAPI のエラー本文とともに isError: true を返します。
scrape_url_markdown

URL をスクレイピングし、結果を Markdown として返します。

記事の抽出、商品説明、検索結果の要約、LLM に適したページ分析など、HTML の構造よりテキストの内容が重要な場合に使用します。

入力:

名前型必須説明
urlstringはいスクレイピングする絶対 URL です。有効な URL である必要があります。
browserCommandsstringいいえスクレイピング前に実行するブラウザーコマンドを格納した JSON 配列文字列です。

戻り値:

  • リクエストされたページの text/markdown コンテンツ。
  • 上流リクエストが失敗した場合は、ScrAPI のエラー本文とともに isError: true を返します。

前提条件

次のランタイムオプションから選択してください。

  • npx またはローカル開発には Node.js 18 以降。
  • コンテナーを使う場合は Docker。
  • Claude Desktop、MCP Inspector、または stdio や Streamable HTTP の MCP サーバーに対応したその他のクライアントなどの、MCP 対応クライアント。

API キー

ScrAPI アカウントを使用するには、SCRAPI_API_KEY を設定します。

export SCRAPI_API_KEY="your-scrapi-api-key"

PowerShell:

$env:SCRAPI_API_KEY = "your-scrapi-api-key"

API キーが必要です。API キーがない場合、現在 ScrAPI では一部のドメインに限り、同時実行数とキューの優先度が低い状態で無料利用できます。

クイックスタート

NPX で実行する

デフォルトのトランスポートは stdio です。これは、ローカルサーバープロセスの起動時に、ほとんどのデスクトップ MCP クライアントが使用するトランスポートです。

npx -y @deventerprisesoftware/scrapi-mcp

API キーを使用する場合:

SCRAPI_API_KEY="your-scrapi-api-key" npx -y @deventerprisesoftware/scrapi-mcp

PowerShell:

$env:SCRAPI_API_KEY = "your-scrapi-api-key"
npx -y @deventerprisesoftware/scrapi-mcp
Docker で実行する

公開されている Docker イメージはデフォルトで HTTP モードで起動し、ポート 5000 でリッスンします。

docker run --rm -p 5000:5000 -e SCRAPI_API_KEY="your-scrapi-api-key" deventerprisesoftware/scrapi-mcp

MCP エンドポイント:

http://localhost:5000/mcp

ローカル MCP クライアント用の stdio サーバーとしてコンテナーを実行するには:

docker run -i --rm -e TRANSPORT=stdio -e SCRAPI_API_KEY="your-scrapi-api-key" deventerprisesoftware/scrapi-mcp

MCP クライアントの設定

ほとんどのローカルコーディングアシスタントでは、次の 2 種類の設定形式のいずれかを使用します。

  • Stdio:クライアントが npx または Docker でこのパッケージを起動し、stdin/stdout 経由で通信します。
  • Streamable HTTP:TRANSPORT=http を指定してこのサーバーを自分で起動し、クライアントの接続先を http://localhost:5000/mcp またはデプロイ先の URL に設定します。

クライアントにツールのタイムアウト設定がある場合は、300000 ミリ秒または 300 秒に近い値を使用してください。ScrAPI では、CAPTCHA の解決、ブラウザーのレンダリング、または複数のブラウザーコマンドが必要なページの処理に数分かかることがあります。

NPX を使用した Claude Desktop の設定

claude_desktop_config.json に次の設定を追加します。

{
  "mcpServers": {
    "ScrAPI": {
      "command": "npx",
      "args": ["-y", "@deventerprisesoftware/scrapi-mcp"],
      "env": {
        "SCRAPI_API_KEY": "your-scrapi-api-key"
      }
    }
  }
}
Docker を使用した Claude Desktop の設定
{
  "mcpServers": {
    "ScrAPI": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "SCRAPI_API_KEY",
        "deventerprisesoftware/scrapi-mcp"
      ],
      "env": {
        "SCRAPI_API_KEY": "your-scrapi-api-key"
      }
    }
  }
}

設定を変更したら、Claude Desktop を再起動します。MCP ツールの一覧に ScrAPI の 2 つのツールが表示されます。

Claude Desktop

Cursor

Cursor は、プロジェクト設定 .cursor/mcp.json とグローバル設定 ~/.cursor/mcp.json に対応しています。Cursor の MCP ドキュメントを参照してください。

Stdio の設定:

{
  "mcpServers": {
    "scrapi": {
      "command": "npx",
      "args": ["-y", "@deventerprisesoftware/scrapi-mcp"],
      "env": {
        "SCRAPI_API_KEY": "${env:SCRAPI_API_KEY}"
      }
    }
  }
}

HTTP の設定:

{
  "mcpServers": {
    "scrapi": {
      "url": "http://localhost:5000/mcp"
    }
  }
}

HTTP の場合は、先にサーバーを起動します。

TRANSPORT=http PORT=5000 SCRAPI_API_KEY="your-scrapi-api-key" npx -y @deventerprisesoftware/scrapi-mcp
Windsurf

Windsurf Cascade は、MCP サーバーを ~/.codeium/windsurf/mcp_config.json に保存します。また、Windsurf Settings > Cascade > MCP Servers からサーバーを追加することもできます。Windsurf の MCP ドキュメントを参照してください。

Stdio の設定:

{
  "mcpServers": {
    "scrapi": {
      "command": "npx",
      "args": ["-y", "@deventerprisesoftware/scrapi-mcp"],
      "env": {
        "SCRAPI_API_KEY": "${env:SCRAPI_API_KEY}"
      }
    }
  }
}

HTTP の設定:

{
  "mcpServers": {
    "scrapi": {
      "serverUrl": "http://localhost:5000/mcp"
    }
  }
}

Windsurf は、リモート HTTP MCP サーバーに serverUrl または url を使用できます。チームでエンタープライズ MCP コントロールを使用している場合、管理者の許可リストにあるサーバー ID は、たとえば scrapi のようにキー名と一致している必要があります。

Kilo Code

Kilo Code は、MCP 設定をメインの Kilo 設定ファイルに保存します。グローバル設定には ~/.config/kilo/kilo.jsonc、プロジェクトルートには kilo.jsonc、プロジェクト固有の設定には .kilo/kilo.jsonc を使用します。Kilo Code の MCP ドキュメントを参照してください。

ローカルの stdio 設定:

{
  "mcp": {
    "scrapi": {
      "type": "local",
      "command": ["npx", "-y", "@deventerprisesoftware/scrapi-mcp"],
      "environment": {
        "SCRAPI_API_KEY": "your-scrapi-api-key"
      },
      "enabled": true,
      "timeout": 300000
    }
  }
}

リモート HTTP の設定:

{
  "mcp": {
    "scrapi": {
      "type": "remote",
      "url": "http://localhost:5000/mcp",
      "enabled": true,
      "timeout": 300000
    }
  }
}

Windows で Kilo Code の UI から npx が見つからない場合は、コマンドに cmd を指定し、引数として /c、npx、-y、@deventerprisesoftware/scrapi-mcp を渡してください。

Codex

Codex は CLI と IDE 拡張機能で MCP サーバーに対応しています。どちらも同じ MCP 設定を使用します。デフォルトでは、Codex は設定を ~/.codex/config.toml に保存します。信頼済みのプロジェクトでは .codex/config.toml も使用できます。Codex の MCP ドキュメントを参照してください。

Codex CLI で stdio サーバーを追加します。

codex mcp add scrapi --env SCRAPI_API_KEY="your-scrapi-api-key" -- npx -y @deventerprisesoftware/scrapi-mcp
codex mcp list

同等の config.toml による stdio の設定:

[mcp_servers.scrapi]
command = "npx"
args = ["-y", "@deventerprisesoftware/scrapi-mcp"]
startup_timeout_sec = 20
tool_timeout_sec = 300

[mcp_servers.scrapi.env]
SCRAPI_API_KEY = "your-scrapi-api-key"

HTTP の設定:

[mcp_servers.scrapi]
url = "http://localhost:5000/mcp"
tool_timeout_sec = 300

Codex のターミナル UI で /mcp を実行し、サーバーが接続されていることを確認します。

VS Code

VS Code は、ワークスペースの場合は .vscode/mcp.json に、ユーザープロファイルの場合はそのプロファイルに MCP 設定を保存します。トップレベルのキーは mcpServers ではなく servers です。VS Code の MCP 設定リファレンスを参照してください。

Stdio の設定:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "scrapi-api-key",
      "description": "ScrAPI API key",
      "password": true
    }
  ],
  "servers": {
    "scrapi": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@deventerprisesoftware/scrapi-mcp"],
      "env": {
        "SCRAPI_API_KEY": "${input:scrapi-api-key}"
      }
    }
  }
}

HTTP の設定:

{
  "servers": {
    "scrapi": {
      "type": "http",
      "url": "http://localhost:5000/mcp"
    }
  }
}

コマンドパレットのコマンド MCP: Add Server、MCP: List Servers、MCP: Reset Cached Tools を使用して、MCP サーバーの追加、確認、更新を行います。

Claude Code

Claude Code は、claude mcp CLI と Claude Code 内の /mcp コマンドを通じて MCP サーバーをサポートしています。Claude Code MCP のドキュメントをご覧ください。

stdio サーバーを追加します:

claude mcp add --transport stdio --env SCRAPI_API_KEY="your-scrapi-api-key" scrapi -- npx -y @deventerprisesoftware/scrapi-mcp
claude mcp list

HTTP サーバーを追加します:

claude mcp add --transport http scrapi http://localhost:5000/mcp
claude mcp list

すべての Claude Code プロジェクトでサーバーを利用できるようにするには、サーバー名の前に --scope user を追加します:

claude mcp add --transport stdio --scope user --env SCRAPI_API_KEY="your-scrapi-api-key" scrapi -- npx -y @deventerprisesoftware/scrapi-mcp

Claude Code 内で /mcp を実行し、サーバーが接続されていることを確認します。

汎用 Stdio MCP クライアント

コマンド、引数、環境変数を受け付けるクライアントでは、次の形式を使用します:

{
  "name": "ScrAPI",
  "command": "npx",
  "args": ["-y", "@deventerprisesoftware/scrapi-mcp"],
  "env": {
    "SCRAPI_API_KEY": "your-scrapi-api-key"
  }
}

HTTP トランスポート

TRANSPORT=http を設定すると、Streamable HTTP 経由でサーバーを実行できます。

TRANSPORT=http PORT=5000 SCRAPI_API_KEY="your-scrapi-api-key" npx -y @deventerprisesoftware/scrapi-mcp

PowerShell:

$env:TRANSPORT = "http"
$env:PORT = "5000"
$env:SCRAPI_API_KEY = "your-scrapi-api-key"
npx -y @deventerprisesoftware/scrapi-mcp

MCP エンドポイント:

http://localhost:5000/mcp

環境変数:

名前デフォルト説明
SCRAPI_API_KEY制限付きデフォルトキーScrAPI のスクレイプ API を呼び出す際に使用する ScrAPI API キーです。
TRANSPORTstdiostdio または http を使用します。
PORT5000TRANSPORT=http の場合に使用するポートです。
MCP Inspector でテストする

Stdio モード:

npx @modelcontextprotocol/inspector npx -y @deventerprisesoftware/scrapi-mcp

HTTP モード:

TRANSPORT=http PORT=5000 npx -y @deventerprisesoftware/scrapi-mcp

次に MCP Inspector を開き、以下に接続します:

http://localhost:5000/mcp

MCP Inspector

クラウドホスト型サーバー

ScrAPI はホスト型の MCP エンドポイントも提供しています:

Streamable HTTP: https://api.scrapi.tech/mcp

クラウド MCP サーバーは、すべての MCP クライアントでサポートされているわけではありません。カスタムクライアント、MCP Inspector、またはリモート MCP サーバーをサポートするプラットフォームでの利用に最適です。

ScrAPI API キーで認証するには、クエリパラメーターまたはリクエストヘッダーとして渡します:

  • クエリパラメーター:https://api.scrapi.tech/mcp?apiKey=<YOUR_API_KEY>
  • リクエストヘッダー:X-API-KEY: <YOUR_API_KEY>

使用例

具体的な操作方法は、使用する MCP クライアントによって異なります。ほとんどのクライアントでは、ScrAPI ツールを使うようモデルに依頼するか、ツールインスペクターから直接ツールを呼び出せます。

ページを Markdown としてスクレイプする

ツール:

scrape_url_markdown

引数:

{
  "url": "https://example.com"
}

プロンプトの例:

Use ScrAPI to scrape https://example.com as Markdown and summarize the page.
ページを HTML としてスクレイプする

ツール:

scrape_url_html

引数:

{
  "url": "https://example.com"
}

プロンプトの例:

Use ScrAPI to scrape https://example.com as HTML and extract every link.
スクレイプ前に Cookie を受け入れる

browserCommands の値は、JSON 配列を含む文字列である必要があります。

{
  "url": "https://example.com",
  "browserCommands": "[{\"click\":\"#accept-cookies\"},{\"wait\":1000}]"
}
検索結果をスクレイプする前にサイトを検索する
{
  "url": "https://example.com/search",
  "browserCommands": "[{\"input\":{\"input[name='q']\":\"web scraping\"}},{\"click\":\"button[type='submit']\"},{\"waitfor\":\"#results\"}]"
}
さらにコンテンツを読み込む
{
  "url": "https://example.com/products",
  "browserCommands": "[{\"scroll\":1200},{\"wait\":1000},{\"click\":\"button.load-more\"},{\"waitfor\":\".product-card:nth-child(25)\"}]"
}

ブラウザーコマンド

どちらのツールも、ScrAPI が最終結果を取得する前にページを操作する、オプションのブラウザーコマンドをサポートしています。

コマンドは JSON 配列文字列として指定します。ランダムなマウス移動や可変の入力速度など、人間らしい動作で実行されます。

コマンド形式説明
クリック{"click": "#buttonId"}CSS セレクターで指定した要素をクリックします。
入力{"input": {"input[name='email']": "value"}}入力フィールドに値を入力します。
選択{"select": {"select[name='country']": "USA"}}値または表示テキストでオプションを選択します。
スクロール{"scroll": 1000}ピクセル単位で下にスクロールします。上にスクロールするには負の値を指定します。
待機{"wait": 5000}ミリ秒単位で待機します。最大値:15000。
要素待機{"waitfor": "#elementId"}要素が DOM に表示されるまで待機します。
JavaScript{"javascript": "console.log('test')"}カスタム JavaScript を実行します。

読みやすいコマンド配列:

[
  { "click": "#accept-cookies" },
  { "wait": 2000 },
  { "input": { "input[name='search']": "web scraping" } },
  { "click": "button[type='submit']" },
  { "waitfor": "#results" },
  { "scroll": 500 }
]

MCP ツール引数としてエスケープした形式:

{
  "url": "https://example.com",
  "browserCommands": "[{\"click\":\"#accept-cookies\"},{\"wait\":2000},{\"input\":{\"input[name='search']\":\"web scraping\"}},{\"click\":\"button[type='submit']\"},{\"waitfor\":\"#results\"},{\"scroll\":500}]"
}

CSS セレクターを見つける方法でお困りですか?Rayrun ブラウザー拡張機能を使うと、要素を選択してセレクターを生成できます。

詳しくは、ブラウザーコマンドのドキュメントをご覧ください。

トラブルシューティング

MCP クライアントがサーバーを見つけられない
  • npx を使用している場合は、Node.js 18 以降がインストールされていることを確認します。
  • Docker を使用している場合は、Docker Desktop が起動していることを確認します。
  • 設定ファイルを編集した後、MCP クライアントを再起動します。
  • 設定したコマンドがターミナルで正常に動作することを確認します。
ツールは表示されるが、スクレイピングに失敗する
  • SCRAPI_API_KEY が正しく設定されていることを確認してください。
  • browserCommands を指定せずに、同じ URL を試してください。
  • browserCommands が生の JSON 配列ではなく、JSON 配列の文字列であることを確認してください。
  • Markdown 抽出で必要な構造が省略される場合は、scrape_url_html を使用してください。
  • 実行時間の長いページ、CAPTCHA のフロー、JavaScript を多用するページでは、数分かかることがあります。
ブラウザーコマンドが無視される

サーバーがブラウザーコマンドを送信するのは、browserCommands が JSON 配列として解析された場合のみです。次の形式は有効です。

{
  "browserCommands": "[{\"click\":\"#accept-cookies\"}]"
}

次の形式は配列ではなくオブジェクトの配列であるため、この MCP ツールのスキーマでは無効です。

{
  "browserCommands": [{ "click": "#accept-cookies" }]
}
HTTP エンドポイントが応答しない
  • サーバーが TRANSPORT=http を指定して起動されていることを確認してください。
  • クライアントが / ではなく /mcp に接続していることを確認してください。
  • ポートが PORT と一致していることを確認してください。

開発

依存関係をインストールします。

npm install

テストを実行します。

npm test

ビルドします。

npm run build

stdio モードでソースから実行します。

npm run build
node dist/index.js

HTTP モードでソースから実行します。

TRANSPORT=http PORT=5000 node dist/index.js

Docker イメージをビルドします。

docker build -t deventerprisesoftware/scrapi-mcp -f Dockerfile .

または、パッケージのスクリプトを使用します。

npm run docker:build

ライセンス

この MCP サーバーは MIT License の下でライセンスされています。MIT License の条件に従って、ソフトウェアを自由に使用、変更、配布できます。詳細は LICENSE をご覧ください。

コメント

MCP は初めてですか?

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

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