CatchAll について
CatchAllは、NewsCatcher CatchAll Web Search API向けのMCPサーバーです。関連するウェブページの検索や検索ジョブの管理に加え、モニター、Webhook、プロジェクト、データセット、エンティティも扱えます。
主な機能
- 01ウェブ検索の送信と検証
- 02ジョブの追跡と結果取得
- 03検索モニターの作成と管理
- 04Webhookとプロジェクトの管理
- 05データセットとエンティティの整理
活用シーン
- 01イベントに関連するウェブページの検索
- 02モニターによる定期検索
- 03検索結果のCSV取得
- 04プロジェクトやデータセットでの検索整理
MCP 対応
CatchAllの検索・管理操作をMCPクライアント向けのツールとして公開します。ホスト型エンドポイントのほか、ローカル実行やセルフホストにも対応します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://catchall-mcp.newscatcherapi.com/mcpclaude mcp add --transport http com-newscatcherapi-catchall https://catchall-mcp.newscatcherapi.com/mcp{"mcpServers":{"com-newscatcherapi-catchall":{"type":"http","url":"https://catchall-mcp.newscatcherapi.com/mcp"}}}Cursor で開く{"servers":{"com-newscatcherapi-catchall":{"type":"http","url":"https://catchall-mcp.newscatcherapi.com/mcp"}}}VS Code で開く{"mcpServers":{"com-newscatcherapi-catchall":{"type":"http","url":"https://catchall-mcp.newscatcherapi.com/mcp"}}}{"mcpServers":{"com-newscatcherapi-catchall":{"serverUrl":"https://catchall-mcp.newscatcherapi.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://catchall-mcp.newscatcherapi.com/mcp認証が必要ツール
61| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| mode | string | いいえ | オプションのジョブ処理モード:`"lite"`(高速、低コスト、詳細度は低め)または `"base"`(デフォルト、 完全抽出)。省略した場合、API は `"base"` をデフォルトで使用します。 |
| limit | any | いいえ | オプションの処理上限(最小 10)。費用に影響します。省略すると、プランの上限までのすべての結果を取得します。 |
| query | string | はい | プレーンテキストの検索意図(必須)。 |
| schema | string | いいえ | デフォルトの抽出 schema を上書きする、オプションの高度なカスタム JSON schema 文字列です。適切な schema を見つけるには `initialize_query` を使用します。 |
| api_key | string | いいえ | CatchAll API キー。x-api-key ヘッダーまたは CATCHALL_API_KEY 環境変数で指定する場合は省略できます。 |
| context | string | いいえ | 優先事項に関するオプションのガイダンス(例:対象エンティティ、 イベントの種類、enrichments で取得したい特定のデータポイント)。 企業データセットを接続する場合、エンティティ関連性 バリデーター(例:`company_is_primary_subject`)は自動生成されます。 ここでそれらを要求しないでください。「企業リストを添付する」などとは書かないでください。 |
| end_date | string | いいえ | オプションの ISO 8601 UTC 検索期間終了日時。 |
| project_id | string | いいえ | このジョブに関連付けるオプションのプロジェクト ID。 |
| start_date | string | いいえ | オプションの ISO 8601 UTC 検索期間開始日時。 |
| validators | any | いいえ | オプションのカスタムブール値バリデーター(`name`、`description`、`type`)。配列または JSON 文字列の配列として指定します。 `connected_dataset_ids` が設定されている場合、`company_is_primary_subject` などのエンティティ関連性バリデーターは含めないでください。これらは API が自動生成します。イベントまたはトピックを記述するバリデーター(例:`is_acquisition_event`)のみを追加してください。 |
| enrichments | any | いいえ | オプションのカスタム enrichments(`name`、`description`、`type`)。配列または JSON 文字列の配列として指定します。 |
| webhook_ids | any | いいえ | ジョブ完了時に通知するオプションの webhook ID リスト(ジョブあたり最大 5 件)。 `list_webhooks` / `create_webhook` を使用して ID を取得します。 |
| ed_score_min | any | いいえ | オプションのエンティティと分野の関連性スコア下限(1-10)。 `connected_dataset_ids` が設定されている場合のみ有効です。 |
| ed_association_type | string | いいえ | 各イベントにおけるウォッチリストエンティティの関連の強さを任意で絞り込みます。`connected_dataset_ids` が設定されている場合にのみ適用されます。 - `"event_associated"`:エンティティが**直接の行為者**であるイベントのみを保持します(connected_dataset_ids が設定されている場合のデフォルト)。 - `"mention"`:エンティティが**言及されているだけ**のイベントもすべて保持します。 |
| connected_dataset_ids | any | いいえ | 検索範囲を絞り込むエンティティを含む、データセット ID の任意のリストです。設定すると、(1) エンティティフィルタリングが自動的に適用されます。`query` で会社リストやウォッチリストに言及しないでください。(2) `company_is_primary_subject` などのエンティティ関連性バリデーターが自動生成されます。`validators` に追加しないでください。指定がない場合、`ed_score_min` のデフォルト値は 2 です。 |
| fetch_all_watchlist_news | boolean | いいえ | トピックフィルタリングを `query` から適用せず、接続されたウォッチリストエンティティに関する**すべての**ニュースを取得します。`connected_dataset_ids` の設定が必要です。デフォルト:`False`。 |
詳細
Newscatcher CatchAll MCP サーバー
NewsCatcher CatchAll Web Search API 用の MCP サーバーです。
クイックスタート — ホスト型サーバーを利用する
MCP を利用するために、このリポジトリをクローンしたり実行したりする必要はありません。NewsCatcher がホスト型インスタンスを運用しています。
https://catchall-mcp.newscatcherapi.com/mcp?apiKey=YOUR_CATCHALL_API_KEY
platform.newscatcherapi.com で CatchAll API キーを取得し、接続します。
{
"mcpServers": {
"catchall": {
"type": "http",
"url": "https://catchall-mcp.newscatcherapi.com/mcp?apiKey=YOUR_CATCHALL_API_KEY"
}
}
}
または、Claude Code CLI を使います。
claude mcp add --transport http catchall "https://catchall-mcp.newscatcherapi.com/mcp?apiKey=YOUR_CATCHALL_API_KEY"
詳しい統合ドキュメント:https://www.newscatcherapi.com/docs/web-search-api/integrations/mcp
サーバーを自分で実行する(ローカルまたはセルフホスト可能な環境で運用する)場合は、以下の実行方法を参照してください。
ツールとエンドポイントの対応
ジョブ
| MCP ツール | メソッド | エンドポイント |
|---|---|---|
initialize_query | POST | /catchAll/initialize |
submit_query | POST | /catchAll/submit |
validate_query | POST | /catchAll/validate |
continue_job | POST | /catchAll/continue |
list_user_jobs | GET | /catchAll/jobs/user |
get_job_status | GET | /catchAll/status/{job_id} |
pull_results | GET | /catchAll/pull/{job_id} |
pull_job_csv | GET | /catchAll/pull/{job_id}/csv |
delete_job | DELETE | /catchAll/jobs/{job_id} |
ジョブ一覧のフィルター:
list_user_jobsは、page/page_sizeに加えて、search、ownership、project_id、mode(baseまたはlite)のフィルターに対応しています。
モニター
| MCP ツール | メソッド | エンドポイント |
|---|---|---|
create_monitor | POST | /catchAll/monitors/create |
update_monitor | PATCH | /catchAll/monitors/{monitor_id} |
delete_monitor | DELETE | /catchAll/monitors/{monitor_id} |
list_monitors | GET | /catchAll/monitors/ |
list_monitor_jobs | GET | /catchAll/monitors/{monitor_id}/jobs |
get_monitor_status | GET | /catchAll/monitors/{monitor_id}/status |
pull_monitor_results | GET | /catchAll/monitors/pull/{monitor_id} |
pull_monitor_csv | GET | /catchAll/monitors/pull/{monitor_id}/csv |
enable_monitor | POST | /catchAll/monitors/{monitor_id}/enable |
disable_monitor | POST | /catchAll/monitors/{monitor_id}/disable |
Webhook
| MCP ツール | メソッド | エンドポイント |
|---|---|---|
list_webhooks | GET | /catchAll/webhooks |
create_webhook | POST | /catchAll/webhooks |
get_webhook | GET | /catchAll/webhooks/{webhook_id} |
update_webhook | PATCH | /catchAll/webhooks/{webhook_id} |
delete_webhook | DELETE | /catchAll/webhooks/{webhook_id} |
test_webhook | POST | /catchAll/webhooks/{webhook_id}/test |
assign_webhook_resource | POST | /catchAll/webhooks/{webhook_id}/resources |
list_webhook_resources | GET | /catchAll/webhooks/{webhook_id}/resources |
remove_webhook_resource | DELETE | /catchAll/webhooks/{webhook_id}/resources/{resource_type}/{resource_id} |
list_resource_webhooks | GET | /catchAll/resources/{resource_type}/{resource_id}/webhooks |
get_webhook_history | GET | /catchAll/webhook-history |
trigger_webhook | POST | /catchAll/webhook/trigger/{resource_type}/{resource_id} |
Webhook に関する注意:
create_webhookでは、作成時に Webhook をプロジェクトに関連付けるためのproject_idを任意で指定できます。list_webhooksでも、特定のプロジェクトに属する Webhook に絞り込むためにproject_idを任意で指定できます。get_webhook_historyには、2 つのモードがあります。ジョブ/モニター/monitor_group の配信履歴を取得するにはresource_typeとresource_idを指定し、1 つの Webhook を介したすべての配信を取得するにはwebhook_idを指定します(1 回の呼び出しにつき、いずれか一方のモードのみ指定できます)。手動のテスト配信(test_webhook)は Webhook モードでのみ表示され、resource_type: "test"として記録されます。
プロジェクト
| MCP ツール | メソッド | エンドポイント |
|---|---|---|
create_project | POST | /catchAll/projects/ |
list_projects | GET | /catchAll/projects/ |
get_project | GET | /catchAll/projects/{project_id} |
update_project | PATCH | /catchAll/projects/{project_id} |
delete_project | DELETE | /catchAll/projects/{project_id} |
get_project_overview | GET | /catchAll/projects/{project_id}/overview |
add_project_resources | POST | /catchAll/projects/{project_id}/resources |
list_project_resources | GET | /catchAll/projects/{project_id}/resources |
remove_project_resource | DELETE | /catchAll/projects/{project_id}/resources/{resource_type}/{resource_id} |
プロジェクトのリソース:
resource_typeはjob、monitor、dataset、monitor_group、webhookのいずれかです。Webhook は複数のプロジェクトに同時に所属できます。delete_resources=trueを指定してdelete_projectを実行すると、含まれるジョブ、モニター、 データセット、モニターグループが削除されますが、Webhook は関連付けが解除されるだけで、削除はされません。 レスポンスのdeleted_resourcesでは、Webhook はwebhook_unlinkedの数として報告されます。
データセット
| MCP ツール | メソッド | エンドポイント |
|---|---|---|
create_dataset | POST | /catchAll/datasets/ |
list_datasets | GET | /catchAll/datasets/ |
get_dataset | GET | /catchAll/datasets/{dataset_id} |
update_dataset | PATCH | /catchAll/datasets/{dataset_id} |
delete_dataset | DELETE | /catchAll/datasets/{dataset_id} |
add_dataset_entities | POST | /catchAll/datasets/{dataset_id}/entities |
remove_dataset_entities | DELETE | /catchAll/datasets/{dataset_id}/entities |
list_dataset_entities | POST | /catchAll/datasets/{dataset_id}/entities/list |
get_dataset_status | GET | /catchAll/datasets/{dataset_id}/status |
create_dataset_from_csv | POST | /catchAll/datasets/upload |
append_csv_to_dataset | POST | /catchAll/datasets/{dataset_id}/upload |
CSV アップロード(v1.6.1):
create_dataset_from_csvとappend_csv_to_datasetは、fileパラメーターで CSV の内容を受け取ります。生の CSV テキストまたは標準の base64 を指定します。 サーバーのファイルシステムからパスを読み取ることはないため、リモート/ホスト型の MCP でも安全です。インラインの CSV 内容は、base64 デコード後に最大 10 MB に制限されます。create_dataset_from_csvでは、新しい省略可能なproject_idフィールドも使用できます。
エンティティ
| MCP ツール | メソッド | エンドポイント |
|---|---|---|
create_entity | POST | /catchAll/entities/ |
list_entities | GET | /catchAll/entities/ |
create_entities_batch | POST | /catchAll/entities/batch |
get_entity | GET | /catchAll/entities/{entity_id} |
update_entity | PATCH | /catchAll/entities/{entity_id} |
delete_entity | DELETE | /catchAll/entities/{entity_id} |
external_entity_id(v1.6.3):create_entityとupdate_entityは、省略可能なexternal_entity_id文字列を受け付けます。これは、エンティティを外部システムのレコードに紐付ける、 顧客指定の識別子です。project_id(v1.8.0):list_entitiesは省略可能なproject_idを受け付け、特定のプロジェクトに属するエンティティに絞り込めます。
ソースグループ
| MCP ツール | メソッド | エンドポイント |
|---|---|---|
list_source_groups | GET | /catchAll/source-groups |
ソースグループ(v1.8.0): 名前付きで再利用可能なドメイン許可リストです(公開グループ、および組織がアクセスできる組織公開グループ)。
list_source_groupsは、各グループのslug、name、descriptionを返します。直接 API のPOST /catchAll/submitでは、ドメイン許可リストを指定して取得対象を絞り込むための slug のsource_groupsフィールドが 使用できるようになりました。submit_queryはまだこのパラメーターを公開していません。この機能が 将来のリリースで追加されるまでは、直接 API を使用してください。
ユーザーとメタ情報
| MCP ツール | メソッド | エンドポイント |
|---|---|---|
get_user_limits | POST | /catchAll/user/limits |
check_health | GET | /health |
get_version | GET | /version |
認証
API キーの優先順位(高い順):
api_keyツールパラメーターx-api-keyリクエストヘッダーAuthorization: Bearer <key>リクエストヘッダー- URL クエリパラメーター
?apiKey=... CATCHALL_API_KEY環境変数
check_health と get_version では API キー認証は不要です。
ホスト型デプロイ(FastMCP Gateway)
fastmcp.app 経由でデプロイすると、ステートレスゲートウェイがサーバーの前段に配置されます。ゲートウェイは HTTP ヘッダーをバックエンドに転送しますが、URL クエリパラメーターは転送しません。?apiKey= の代わりに x-api-key ヘッダーまたは CATCHALL_API_KEY 環境変数を使用してください。
Claude Code / Cursor:
{
"mcpServers": {
"catchall": {
"type": "http",
"url": "https://YOUR-DEPLOYMENT.fastmcp.app/mcp",
"headers": { "x-api-key": "YOUR_API_KEY" }
}
}
}
または CLI 経由:
claude mcp add --transport http catchall "https://YOUR-DEPLOYMENT.fastmcp.app/mcp" \
--header "x-api-key: YOUR_API_KEY"
サーバーへの直接アクセス(ゲートウェイなし):URL 内の ?apiKey=YOUR_KEY は引き続き使用できます。
コアワークフロー(ジョブ)
- 任意:
initialize_queryを呼び出して、バリデーター/エンリッチメント/日付範囲をプレビューします。 initialize_queryはプレビュー専用(ジョブは作成されません)であり、提案内容は非決定的です。submit_queryで送信します(queryは必須)。queryのみを送信できます。省略された任意フィールドは自動的に選択/生成されます。- 任意フィールドはそれぞれ独立しています。任意の組み合わせで指定できます(例:カスタム
validatorsのみ)。省略したフィールドは引き続き自動生成されます。 start_date/end_dateは、抽出したコンテンツ内のイベント日付ではなく、ウェブページの発見日を絞り込みます。- イベント日時の精度を高めるには、イベントに特化したバリデーター/エンリッチメントを使用し、取得結果の
event_dateを確認してください。 get_job_statusをポーリングします。最初は約1~2分後に確認し、その後は30~60秒ごとに確認して、completedまたはfailedになったら停止します。pull_resultsで取得します。enriching中も部分データが表示されます。- すべての利用可能なレコードを取得するには、
page < total_pagesの間ページネーションを続けます。 - 追加のレコードを処理する場合にのみ
continue_jobを使用します(コストに影響します)。これは、もともとlimitを指定して送信されたジョブにのみ適用されます。 continue_job.new_limitは任意です。省略すると、API はプランの上限をデフォルトとして使用します。page/page_size/total_pagesはすでに利用可能なレコードを表します。さらに表示されるレコードがある可能性を検出するには、progress_validated < candidate_recordsを使用します。
limit と page_size
limit(submit_query、continue_job)は処理するレコード数を制御し、コストに影響します。指定する場合は10以上である必要があります。プランの上限までのすべてのデータを取得するには省略してください。page_size(pull_results、list_user_jobs)はページネーションのみを制御し、処理コストには影響しません。pull_results.page_sizeのデフォルトは100です。page_sizeの範囲は1..1000です。pull_resultsのレスポンスにはerror(失敗したジョブ)とlimit(適用されたジョブ上限)が含まれます。
API によって適用されるモニターの制約
create_monitor.backfill=true:参照ジョブのend_dateは直近7日以内である必要があります。create_monitor.backfill=false:参照ジョブの経過時間の制約は適用されません。- モニターの最小スケジュール頻度はプランによって異なります。
create_monitorは、任意のlimit(最小10)、backfill(デフォルトtrue)、timezone、webhook_ids、project_idをサポートします。- Webhook は v1.5.3 で一元管理されます。
create_webhookで登録し、create_monitor.webhook_ids/update_monitor.webhook_idsで ID を指定して紐付けてください(Webhook 設定をインラインで指定する方法はありません)。 - モニターは
baseジョブのみをサポートします(liteは対象外です)。 enable_monitorは任意のbackfillをサポートします。update_monitorはwebhook_ids、実行時のlimit、schedule、timezoneを更新します(割り当てを解除するにはwebhook_ids=[]を渡します。scheduleも設定されていない場合、timezoneは無視されます)。list_monitorsはpageとpage_sizeによるページネーションに加えて、search、ownership、project_idの各フィルターをサポートします。total、page、page_size、total_pages、monitorsを返します。
エンリッチメント出力に関する注意事項
enrichment.enrichment_confidenceは常に含まれます。- 企業のエンリッチメントは、次の項目を持つ構造化オブジェクトです。
source_textconfidencemetadata.namemetadata.domain_urlmetadata.domain_url_confidence
エラー処理
ツールは次の内容を返します。
- 成功時は整形済みの JSON 文字列。
- (v1.8.0) 上流からの 2xx 以外のレスポンス(不正な
api_key、無効または別のプロジェクトのproject_id、見つからない ID、検証エラーなど)、または未処理の例外が発生した場合、MCP ツールエラー(isError=True)。エラーメッセージには、上流のステータスコードとメッセージが含まれます。たとえば、API Error (401): Api key not foundです。v1.8.0 より前は、ツールはこうしたエラーを握りつぶし、成功したツールの結果としてプレーンな"Error: ..."文字列を返していました。そのため、isErrorだけを確認するクライアントには成功したように見えていました。この問題は修正され、すべてのツールがエラー文字列を返すのではなくToolErrorを送出するようになったため、エラーは常に実際のツールエラーとして報告されます。
実行
依存関係をインストールします。
pip install -r requirements.txt
stdio 経由で実行します。
python server.py
HTTP 経由で実行します(fastmcp CLI が利用可能な場合)。
fastmcp run server.py:mcp --transport streamable-http --host 0.0.0.0 --port 8000
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。