ClaudeとApifyを連携する方法 — Actorをスクレイピングツールとして呼ぶ
Apify MCPサーバーをclaude.ai・Claude Desktop・Claude Codeに接続し、Apify StoreのActorをスクレイピングツールとして呼ぶ手順です。ツールの絞り込みとアカウント不要の試し方も扱います。
ClaudeとApifyの連携は、ApifyのMCPサーバー(https://mcp.apify.com)をClaudeに登録するだけで成立します。登録すると、Apify Storeに並ぶ「Actor」(スクレイピングや自動化の部品)をClaudeが検索し、入力項目を読み、そのまま実行できるようになります。
claude.aiとClaude Desktopでは、カスタムコネクタにこのURLを入れて、ブラウザでApifyにサインインします。Claude Codeならclaude mcp addの1行です。ただし初期設定のままだと読み込まれるツールが多めなので、用途に合わせて絞る手順まで含めて説明します。
Apify MCPサーバーでClaudeに何ができるか
Apify MCPサーバーとは、Apifyプラットフォームの機能をMCP(Model Context Protocol)のツールとして公開する仕組みです。Apify Storeの公開Actorを検索して実行し、実行結果のデータセットを読み出すところまでを、Claudeの会話の中で完結させます。
扱えるのは、おおまかに次の4種類です。
- Actorの検索と詳細の取得(入力スキーマ、README、料金を含む)
- Actorの実行(
call-actor) - 実行状況・ログ・データセットなど、結果の読み出し
- Apifyドキュメントの検索
リポジトリの説明には、Facebook投稿・Googleマップ・Google検索結果・Instagramのスクレイパーのほか、Web検索して上位ページの本文を返すapify/rag-web-browserが例に挙がっています。Actorの入力スキーマはMCPツールの引数としてClaudeに渡るため、引数の指定はClaudeが組み立てます。
同じ「Webを読む」用途でも、Firecrawlのようにクロール専用のMCPや、ブラウザ操作が中心のPlaywright MCPとは立ち位置が違います。Apifyは、Store上のActorから目的に合うものをClaudeが選ぶ点が特徴です。クロール専用の接続はFirecrawl MCPをClaude Codeにつなぐ手順、ブラウザ操作はPlaywright MCPの導入手順で扱っています。
どの方法で接続するか
接続方法は使うClaudeの形態で決まります。
| 使うClaude | 接続方法 | 認証 |
|---|---|---|
| claude.ai / Claude Desktop | 接続方法カスタムコネクタにhttps://mcp.apify.comを追加 | 認証OAuth(ブラウザでサインイン) |
| Claude Desktop | 接続方法コネクタディレクトリで「Apify」を検索して追加 | 認証OAuth |
| Claude Code | 接続方法claude mcp add --transport httpで追加 | 認証OAuthまたはBearerトークン |
| リモート接続できないクライアント | 接続方法npx @apify/actors-mcp-serverでローカル起動 | 認証APIトークン(環境変数) |
リモート接続のほうが推奨されています。理由は、サーバーが自動で最新になること、OAuthでAPIトークンを設定ファイルに書かずに済むこと、手元に何もインストールしなくてよいことです。もうひとつ、ホスト版には、Actorの出力項目をあらかじめ推定してツール定義に載せる機能(出力スキーマの推定)があります。ローカルのstdio版にはこの機能がありません。
Claude Codeには、MCPサーバーに加えてApify用のスキルとエージェントをまとめて入れる専用プラグインもあります。MCPだけを試すなら、以下の手順で足ります。
claude.aiとClaude Desktopに追加する
カスタムコネクタでApifyをつなぐ
- 1
Apifyアカウントを用意する
アカウント不要の使い方もありますが、Actorの実行にはアカウントが必要です。ここではサインイン済みを前提にします。
- 2
カスタムコネクタの追加画面を開く
Claudeの「Settings」から「Connectors」を開き、「Add」→「Add custom connector」を選びます。
- 3
名前とURLを入れる
Nameに
Apify、Remote MCP server URLにhttps://mcp.apify.comを入力して「Continue」を押します。 - 4
検出された認証設定のまま追加する
Claudeがサーバーを調べ、認証とOAuthの設定を自動で入力します。そのまま「Add」を押すと、ブラウザが開いてApifyへのサインインと承認を求められます。
リモートコネクタはAnthropicのサーバー側で動くため、同じコネクタがClaude Desktopとclaude.aiの両方で使えます。TeamとEnterpriseのプランでは、個人ではなく組織のOwnerまたはPrimary Ownerが組織全体にコネクタを追加する運用になります。
Claude Desktopでは、コネクタディレクトリで「Apify」を検索して入れる方法もあります。
追加できたら、新しい会話を開いてツール一覧にApifyが出ているのを確かめ、次のように頼んで動作を見ます。
ApifyでWebスクレイピング用のActorを探してください。
Claude Codeに追加する
Claude CodeはHTTPのリモートMCPをコマンド1つで登録できます。OAuthで使う場合は次のとおりです。
claude mcp add --transport http apify https://mcp.apify.com登録後、Claude Codeの中で/mcpを開き、apifyを選んで認証を進めるとブラウザでApifyのサインインが始まります。コマンドラインから認証を済ませたいときはclaude mcp login apifyも使えます。
OAuthのブラウザフローが使えないSSHやコンテナ内では、APIトークンをBearerヘッダーで渡します。トークンはApify Consoleの「Settings」→「API & Integrations」で取得します。
claude mcp add --transport http apify https://mcp.apify.com \
--header "Authorization: Bearer $APIFY_TOKEN"ホスト版につなげない事情があるときは、stdio版をローカルで動かします。Node.js 18以上が必要です。
claude mcp add apify --env APIFY_TOKEN="$APIFY_TOKEN" \
-- npx -y @apify/actors-mcp-server@latest@latestを付けるのは、ローカル運用では常に最新版のサーバーを使うよう勧められているためです。
読み込むツールを絞る
URLにクエリを付けると、読み込むツールを選べます。ここがApify連携で最初に調整したい設定です。
何も指定しない場合は、actorsとdocsの2カテゴリに加えて、apify/rag-web-browserとapify/web-fetchの2つのActorが読み込まれます。テレメトリが有効なときはreport-problemも加わります。この既定の構成は将来のバージョンで変わる可能性があり、本番運用ではtoolsを明示するのが確実です。
| 目的 | URLの例 |
|---|---|
| 既定の構成を明示する | URLの例https://mcp.apify.com?tools=actors,docs,apify/rag-web-browser |
| 使うActorだけにする | URLの例https://mcp.apify.com?tools=apify/instagram-scraper,apify/google-search-scraper |
| 結果の読み出しも追加する | URLの例https://mcp.apify.com?tools=actors,storage |
toolsを指定すると、既定のツールは一切追加されません。列挙したものだけが有効になる点に注意してください。たとえば特定のActor1つだけを指定すれば、検索や汎用のcall-actorは出てこず、そのActor専用のツールだけが見えます。ツールの選択画面はhttps://mcp.apify.com/のWebページから視覚的に作り、生成された設定を貼ることもできます。
Claude側から見て絞る意味は2つあります。ひとつは、ツール定義がコンテキストに載る量が減ること。もうひとつは、Claudeが意図しないActorを呼ぶ余地が狭まることです。繰り返し使う定型作業では、使うActorを固定してしまうほうが挙動が安定します。
Actorを検索して実行する流れ
既定の構成では、Claudeは次の順でツールを使います。
Actor実行の標準的な流れ
- 1
search-actors で候補を探す
Apify Storeを検索し、Actorの候補を返します。順位づけにはActorの品質スコアに近い指標が使われるため、品質スコアが高いActorが上位に来やすくなります。
- 2
fetch-actor-details で入力を確かめる
入力スキーマ、出力スキーマ、README、料金を取得します。必須項目の確認はここで行われます。
- 3
call-actor で実行する
実行上限は
callOptionsに入れて渡します。memory、timeout、maxItems、maxTotalChargeUsdがあり、Actorの入力ではなくcallOptions側に置く決まりです。 - 4
get-dataset-items で結果を読む
call-actorが返すのは実行状態とストレージのIDで、結果そのものではありません。データを読むのはget-dataset-itemsで、件数の上限、オフセット、項目の絞り込みを指定できます。
頼み方の例を挙げます。Actorの名前を指定しなくてもClaudeが探しますが、費用と件数の歯止めは文面で渡すのが確実です。
Apify StoreでGoogleマップの店舗を取得するActorを探して、入力項目と料金を教えてください。まだ実行しないでください。方針に合意したら、最大20件で実行して名前・住所・評価だけ表にしてください。
最初に実行を止めて料金と入力を見せる、という二段階にしておくと、課金を伴うActorをいきなり回す事態を避けられます。件数の上限はmaxItems、金額の上限はmaxTotalChargeUsdという実行オプションで指定できるので、上限値を文面で伝えておくと、Claudeが実行時に設定できます。
call-actorは最大waitSecsで指定した秒数(0〜45、既定30)しか完了を待ちません。長く動くActorは、待ち時間を過ぎても実行自体は続くため、あとからget-actor-runで状態を見て、終わってからget-dataset-itemsを呼ぶ流れになります。runsやstorageカテゴリを明示していなくても、call-actorや個別のActorツールが読み込まれていれば、get-actor-run、get-dataset-items、get-key-value-store-record、abort-actor-runは自動で追加されます。
アカウントなしで試す
アカウントがなくても、検索とドキュメント参照だけなら使えます。toolsに次の4つだけを指定したURLでは、APIトークンなしで接続できます。
claude mcp add --transport http apify-readonly \
"https://mcp.apify.com?tools=search-actors,fetch-actor-details,search-apify-docs,fetch-apify-docs"この4つはActorの探索と情報取得のためのツールです。ここに他のツールを1つでも足す、または既定のエンドポイントに接続すると、APIトークンが必要になります。Actorの実行と、ストレージや実行データへのアクセスは常に認証が要ります。
Actorの選定だけをClaudeに手伝わせて、実行は自分でApify Consoleから行う、という分担にも向いています。
使えないActorと運用上の制限
覚えておきたい制限は4つです。
Apify連携の制約
フルパーミッションのActorは対象外
セキュリティ上の理由で、検索にも実行にも出てきません。フルパーミッションのActorを動かす判断は、LLMではなく利用者本人が承認するものとされています。
毎秒30リクエストまで
ユーザーごとの上限で、Actor実行・ストレージ参照・ドキュメント検索のすべてが対象です。超えると
429が返るので、再試行の仕組みが必要になります。Apify側の課金が別に発生する
Actorの実行にはApifyプランの使用量が消費されます。Claudeの利用料金とは別の請求です。
実行時間は1回の呼び出しに収まらない
長時間のActorは、範囲を絞るか、複数のプロンプトに分けて回します。
エージェントが課金しながらActorを回せるよう、アカウントなしの「agentic payments」(Skyfireなど)も用意されています。ただしリクエスト単位の支払いが使えるのは、pay-per-eventのActorだけです。権限が限定されたActorを動かすには、前払いのトークンを買い、Bearerトークンとして使う形になります。
テレメトリを止める
Apify MCPサーバーは既定で、ツールの呼び出し回数・成否・所要時間と、MCPクライアントの名前・バージョンなどを匿名で収集します。会話の内容、ツールに渡した引数、APIトークン、個人データは収集しないと記載されています。
止めたいときは、ホスト版ならURLにtelemetry-enabled=falseを付けます。
https://mcp.apify.com?telemetry-enabled=falsestdio版は、--telemetry-enabled=falseフラグか環境変数TELEMETRY_ENABLED=falseのどちらかで止められます。両方指定した場合はフラグが優先されます。
つまずいたときの切り分け
- 認証エラーが出る: APIトークンが正しいか、stdio版なら
APIFY_TOKENが環境に入っているかを見ます - stdio版が起動しない:
node -vで18以上かを確かめます - Claude Desktopでツールが出ない: Apify側にClaude Desktop向けのトラブルシューティングがあり、読み込み失敗・接続エラー・キャッシュ破損が載っています
- 実行が返ってこない: Apify ConsoleでそのActorのログを見ます。長い処理の途中なのか、エラーで止まっているのかがログで分かります
- 想定したActorが検索に出ない: フルパーミッションのActorは除外されます
まとめ
連携の中身は、URL1本の登録と、読み込むツールの絞り込みです。最初はsearch-actorsなどの読み取り系だけで試し、使うActorが決まったらtoolsにActor名を直接並べて固定する、という順で進めると、課金とコンテキストの両方を抑えられます。