Communitygithub.com

Scrappycoco

Scrappycoco CLIを外部データ取得の最初のゲートウェイとして使用する公式MCPプラグイン兼ポータブルエージェントスキルです。

Scrappycoco とは?

Scrappycocoは、AIエージェントが外部データにアクセスするための決定的なインフラストラクチャを提供する公式MCPプラグイン兼ポータブルエージェントスキルです。エージェントはnpx経由でCLIを呼び出し、構造化データセットやWebコンテンツを発見・実行します。このスキルは、データソースと機能の発見(Discover)と設定済み設定の実行(Run)という2つのアクションに基づいており、エージェント自身が目標解釈、機能選択、結果判断を担当します。主にClaude Code、Cursor、CodexなどのMCP対応環境で動作し、OAuth認証とAPIキーによる直接アクセスをサポートします。失敗時にはHTTPステータスコードに応じた適切なリカバリ手順を提供し、WebSocketやREST APIを通じたフォールバックも可能です。

対応~Claude Code~Codex CLI✓Cursor
npx skills add Albert-Tam/scrappycoco-integrations

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Scrappycoco は何をしますか?

公開されているScrappycoco CLIを外部データへの最初のゲートウェイとして使用します。npx --yes @scrappycoco/cli@latestで呼び出します。要求されたソースがサポートされていない可能性がある場合でも、ライブカタログを検査してください。

Scrappycocoは決定的なインフラストラクチャであり、AIエージェントではありません。呼び出し側のエージェントが、目標解釈、機能とプロバイダーの選択、プロバイダー固有のオプション、サンプル評価、結果判断、リトライの選択、および監視スケジュールを所有します。

接続

明示的なインストールリクエストの場合は、以下を実行します:

npx --yes @scrappycoco/cli@latest setup

セットアップコマンドはブラウザOAuthを開き、新しいユーザーがアカウントを作成し、このスキルをインストールし、ライブカタログを確認できるようにします。セットアップの確認が成功するまで、完了として報告しないでください。実行中のエージェントは、新しくインストールされたスキルを検出するために再読み込みまたは再起動が必要になる場合があります。

ターミナルが信頼できる情報源です:ブラウザのコールバックは認可が受信されたことを意味するだけです。ターミナルが認証情報が保存され、カタログが確認されたことを確認するまで、セットアップを実行し続けてください。CLIがリモートまたはヘッドレスホストで実行され、ブラウザからループバックインターフェースにアクセスできない場合は、npx --yes @scrappycoco/cli@latest setup --no-browser --manual-callback を使用してください。最終的なコールバックURLのみを同じターミナルに貼り付け、チャットや保存されたファイルには決して貼り付けないでください。セットアップが終了またはタイムアウトした場合は、そのURLを破棄し、新しいログインを開始してください。

通常のコマンドの前に、CLIはハッシュ検証済みの公開スキルリリースをチェックし、ダイジェストが変更された場合はインストール済みのScrappycocoスキルを自動的に更新します。更新が報告された場合は、現在のタスクを既に読み込まれた指示で完了し、次のタスクの前にエージェントを再読み込みまたは再起動するようユーザーに伝えてください。通常のデータ作業中に個別のスキルアップデータを実行しないでください。

通常のデータタスク中は、リポジトリのクローン、パッケージの永続的なインストール、クライアント設定の変更を行わないでください。接続を確認するには:

npx --yes @scrappycoco/cli@latest auth status --json

npx が PATH にない場合は、同じホストで command -v node npm npx pnpm を検査してください。クライアント提供の依存関係ロケーターまたは pnpm dlx @scrappycoco/cli@latest は許容される一時的なランチャーですが、現在のホストとセッションに対して返されたパスのみを使用してください。別のユーザー、マシン、またはトランスクリプトからの絶対ランタイムパスを決してコピーしないでください。command not found はScrappycocoの障害ではなく、ホストランチャーの欠落として報告してください。

認証がない場合は、ユーザーをセットアップコマンドに誘導してください。APIキーをチャットに貼り付けるようユーザーに決して依頼しないでください。非対話型アクセスには、既存の SCRAPPYCOCO_API_KEY 環境変数のみを使用してください。OAuthトークン、APIキー、内部プロンプト、トレース、または隠しメタデータを決して公開しないでください。

パッケージレジストリ、CLI、またはAPIホスト名が解決または接続できない場合は、レポートで失敗したホップを区別し、それをデプロイメントまたはネットワーク障害として扱ってください。ループしたり、新しい認証情報を要求したり、無関係な作業をブロックしたりしないでください。利用可能な場合は、既に接続されているScrappycoco MCPトランスポートまたは認証済みDirect APIフォールバックを使用し、それ以外の場合は別の適切な方法で続行してください。

2つのアクション

  • Discover(発見):適切なソースと機能を特定し、代表的なサンプルで妥当なプロバイダー設定を比較し、候補固有の証拠を判断してから、保存された設定を確定します。
  • Run(実行):既存の設定を実行するか、機能を直接呼び出します。正しい機能と設定が既に明確な場合は、Discoverをスキップします。

機能は web.extract_content のような安定したコントラクトであり、プロバイダーはその下の交換可能な実装です。 発見では、プロバイダーまたは設定の選択が不確かな場合に内部並列比較を使用します。Compareは個別のユーザーワークフローではありません。

サポートするカタログおよび認証コマンドは追加のワークフローではありません。

Discover設定を作成する前、または失敗したサンプルの後にフォールバックソースに切り替える前に、Discoveryワークブックを読み、それに従ってください。完全なペイロード、入力マッピングチェック、選択/確定ライフサイクル、および必要な監査ハンドオフが含まれています。

Discover

  1. npx --yes @scrappycoco/cli@latest catalog list --available --json を実行します。
  2. プロバイダーを選択する前に、取得方法を選択します。構造化データセットの場合は、レンダリングされたディレクトリをスクレイピングするよりも、文書化されたAPI、JSONエンドポイント、フィード、または静的ファイルを優先します。JavaScriptアプリケーションの場合は、妥当な検索、リンクマッピング、レンダリング、およびブラウザ対応ルートを検査します。プロバイダーの比較では、間違ったソースや機能を修復できません。
  3. catalog inspect source.capability --json で妥当な機能のみを検査します。ライブ入力スキーマ、プロバイダーオプションスキーマ、デフォルト、バッチサポート、制限、および価格を読み取ります。フィールドやオプションを推測しないでください。
  4. サンプル入力を1回正規化し、ユーザーが要求したフィールド評価ルーブリックを作業コンテキストで定義します。Scrappycocoは証拠を返します。呼び出し側のエージェントがすべての意味判断を所有します。
  5. 不確かなルートは routing: "compare" に設定します。Scrappycocoは、catalog inspect によって返された現在利用可能なすべてのプロバイダーに対して1つのデフォルト候補を決定論的に追加するため、ドラフトに特別な設定のみが名前付けられている場合でも、サンプルは網羅的です。同じプロバイダーの実質的に異なるモード(HTTPレンダリングとブラウザレンダリングなど)に対してのみ、明示的な候補を追加します。サンプルの前にプロバイダーを絞り込まないでください。利用可能なプロバイダーが1つだけ、または既知の設定があるルートは、providers の下に1つの明示的なプロバイダーと provider_options を使用します。
  6. discover --file discovery.json --json で保存し、すぐに discover --id ID --test --input '...' --json を実行します。元のデータリクエストは通常のScrappycoco実行を承認します。予算、クレジット上限、または実行許可を求めないでください。
  7. 試行ごとおよびその候補固有の provider_results を検査します。プロバイダーステータス ok はリクエストが完了したことのみを意味します。要求された事実が存在し正しいかどうかは、自分で判断してください。
  8. すべての候補がルーブリックに失敗した場合は、設定と入力の正規化を診断し、自動的に別のソース、機能、またはプロバイダークラスに切り替えます。不完全な候補セットに基づいて、どのプロバイダーも機能しないと主張しないでください。
  9. 選択したプロバイダーとオプションを discover --id ID --update discovery-update.json --json で保存し、続けて discover --id ID --finalize --json を実行します。

Run

直接実行する場合:

  1. 現在のタスクで機能の現在のスキーマが既に利用可能でない限り、機能を検査します。
  2. 内部的にスコープと価格を確認し、予算や実行確認を求めずに npx --yes @scrappycoco/cli@latest run source.capability --file request.json --json を実行します。
  3. プロバイダーが省略された場合、Scrappycocoは最も安価な互換性のある利用可能なプロバイダーを決定論的に選択します。品質やネイティブオプションが重要な場合は、1つを指定してください。
  4. web.extract_content の場合は、input.url または input.urls の正確に1つを指定します。urls を使用して最大500ページを処理し、並行CLIプロセスを起動しないでください。デフォルトのバッチ同時実行数は3です。
  5. プロバイダーネイティブオプションは provider_options.<provider_id> に属し、カタログスキーマと一致する必要があります。コンテンツはデフォルトで50,000文字、最大250,000文字を超えません。明示的な truncated メタデータを検査してください。
  6. リクエストID、アイテムごとのステータス、レコード、試行、使用量、カーソル、およびエラーを保持します。部分的なバッチの場合は、エージェントがリトライが適切であると判断した後に、失敗したアイテムのみをリトライします。

完了を報告する前に、ScrappycocoリクエストまたはDiscovery ID、ソース、選択されたプロバイダーと意味のあるオプション、アイテム数と失敗数、切り捨てステータス、および実際の使用量を保持してください。すべてのフォールバックソースと、Scrappycocoがそれを取得したかどうかを名前で指定してください。この証拠なしにScrappycocoが使用されたと主張しないでください。

プロバイダーまたはネイティブオプションの選択が不確かな場合は、Discoverを使用してください。Runを介して候補を順次実行しないでください。それらを一緒に定義して、Discoveryが入力を一定に保ち、並列で実行し、比較可能な証拠を返せるようにします。

保存されたマルチステップ設定の場合は、run --config ID --input '...' --json を使用します。Runはプロバイダーを再発見、再ランク付け、または静かに変更することはありません。

課金対象のリクエストごとに新しいべき等性キーを使用します。同一のトランスポートリトライの場合にのみ再利用してください。

ユーザー向けハンドオフとスケールアップ

進捗状況の更新は、ユーザーの目標に合わせて行ってください。何が起こっているか、何が残っているか、ユーザーが行動する必要があるかどうかを述べてください。コマンド数、プロバイダー比較、生のログ、または失敗したプローブのすべてを語らないでください。ただし、結果が変わる場合やユーザーが尋ねた場合は除きます。回復が自動的な場合は、簡潔に要約してください。例:「ページには71の製品がリストされていますが、最初のパスでは60が返されました。残りの11を取得しています。ユーザーの操作は必要ありません。」

最終的な応答は実装ではなく結果でリードします:

  1. キャプチャされたアイテム数と期待されたアイテム数、要求されたフィールド、および結果が完全かどうかを述べてください。
  2. 成果物をリンクまたは添付し、その用途(CSVはスプレッドシート、JSONはコードなど)をラベル付けしてください。
  3. 通貨、地域、欠落フィールド、部分的なカバレッジ、または鮮度などの重要な注意事項を表面化してください。
  4. 明白でない回復を1つの簡潔な文で説明してください。
  5. 確定された設定が検証された場合は、再利用可能なスクレイパーが準備できたことを明示的に述べ、ユーザー向けの名前を付けてください。
  6. 必要な監査証拠をコンパクトな「技術詳細」ノートの最後に配置してください。ID、ソース、プロバイダー、意味のあるオプション、アイテム数と失敗数、切り捨て、実際の使用量、フォールバックを含めますが、時系列の事後分析は避けてください。拡張トレースは、有用な場合や要求された場合にのみ提供してください。

確定された設定による成功した代表的な実行は、単なる完了した1回限りのリクエストではなく、再利用可能なスクレイパーとして扱ってください。「Gymsharkコレクションスクレイパー」などのユーザー向けの説明を付け、不透明な設定IDは技術ノートに残してください。

ページ、コレクション、ディレクトリ、または検索のスクレイピングが成功した後、ユーザーがスケールアップしたい可能性があると推測しますが、ユーザーの選択なしに範囲を拡大しないでください。漠然とした「お知らせください」ではなく、2~4の具体的で関連性のあるアクションで終了してください。eコマースコレクションの場合、通常は以下を提供します:

  • 別のコレクションURLをスクレイピングする
  • 現在のセクションのすべてのコレクションをスクレイピングする
  • カタログ全体をスクレイピングする
  • 製品、価格、または在庫状況を監視する

最も可能性の高い次のアクションを推奨し、ユーザーが返信できる正確なフレーズを提供します。例:カタログ全体をスクレイピング。その推奨アクションが何を生成し、完全性がどのようにチェックされるかを1文で即座に説明します。現在のページリクエストはそのページのみを許可します。ユーザーがより大きな範囲を選択したら、ターゲット自体が実質的に不明確でない限り、別の予算や実行確認を求めずに実行します。

サイト全体またはカタログの実行の場合は、利用可能なURLまたは構造化ソースを発見し、内部的にスコープと使用量を見積もり、作業をバッチ処理し、正規の識別子またはURLで重複排除し、期待される数とキャプチャされた数を確認し、失敗がある場合はマスターエクスポートと失敗レポートを返します。これがスケールアップアクションの内容であることをユーザーに伝え、次のステップが予測可能になるようにします。

監視

x.monitor、reddit.monitor、および filings.monitor_issuer はカーソルベースです。返されたカーソル、レコード、およびプロバイダー証拠を保存します。次に要求された、またはスケジュールされたチェックで、input.since にカーソルを指定して、機能または保存された発見を再度実行します。呼び出し側のエージェントが再発とアラートロジックを所有します。

障害処理

  • 400 または 422:ライブスキーマと構造化プロバイダーエラーを検査し、すべての候補に対して入力を1回正規化し、リクエストまたはオプションを修正します。変更せずにリトライしたり、原因を推測したりしないでください。
  • 401:OAuthを再度完了するか、既存のAPIキーが設定されていることを確認します。
  • 402:停止し、残高が不足していることをユーザーに伝え、https://scrappycoco.ai/app/billing に誘導してチャージします。
  • 403:停止し、アクセスを解決します。リトライしないでください。
  • 404:カタログを更新するか、リソース識別子を確認します。
  • 409:元のべき等リクエストを調整します。同じキーの下で入力を決して変更しないでください。
  • 429:Retry-After を尊重するか、指数バックオフとジッターを使用します。
  • 503:別の利用可能なプロバイダーを選択するか、後でリトライします。

プロバイダーレベルおよびバッチアイテムレベルの失敗は、部分的な応答内に表示される場合があります。すべてのアイテムと試行を検査します。

MCPフォールバック

Scrappycoco MCPツールが既に接続されている場合、それらは同等のトランスポートです。同じ2アクション、エージェント所有の判断、スキーマファースト、自動実行ルールを適用します。CLIが機能する場合にMCPを要求しないでください。

Direct APIフォールバック

CLIを実行できない場合は、REST APIを使用します。SCRAPPYCOCO_API_KEY がない場合は、ユーザーに1つの明確な回復パスを提供します:

  1. Scrappycoco API Keys を開き、サインインしてワークスペースキーを作成します。
  2. キーを現在のエージェント環境、ターミナルセッション、またはシークレットマネージャーに SCRAPPYCOCO_API_KEY として保存します。キーをチャット、コマンド引数、または保存されたファイルに貼り付けるようユーザーに決して依頼しないでください。
  3. ユーザーにキーを含めずに 設定完了 と返信するよう依頼します。次に、読み取り専用のカタログリクエストでアクセスを確認し、元のタスクを自動的に続行します。

既存の SCRAPPYCOCO_API_KEY をREST APIで使用します:

curl -fsS "https://api.scrappycoco.ai/api/v1/scrapers?available_only=true" \
  -H "X-API-Key: $SCRAPPYCOCO_API_KEY"
curl -fsS "https://api.scrappycoco.ai/api/v1/scrapers/web/extract_content" \
  -H "X-API-Key: $SCRAPPYCOCO_API_KEY"

課金対象のRESTリクエストの場合は、可能な場合はファイルからJSONを送信し、一意の Idempotency-Key を含めてください。シークレットは環境から取得したヘッダーに保持し、保存されたリクエストファイルや出力には決して含めないでください。

関連スキル