CatchAll (by NewsCatcher)
Web search API for comprehensive event retrieval: find every relevant event across the open web â not just top results.
README
Newscatcher CatchAll MCP Server
MCP server for the NewsCatcher CatchAll Web Search API.
Quick Start — Use Our Hosted Server
You don't need to clone or run this repo to use the MCP — NewsCatcher runs a hosted instance:
https://catchall-mcp.newscatcherapi.com/mcp?apiKey=YOUR_CATCHALL_API_KEY
Get a CatchAll API key at platform.newscatcherapi.com, then connect:
{
"mcpServers": {
"catchall": {
"type": "http",
"url": "https://catchall-mcp.newscatcherapi.com/mcp?apiKey=YOUR_CATCHALL_API_KEY"
}
}
}
Or via Claude Code CLI:
claude mcp add --transport http catchall "https://catchall-mcp.newscatcherapi.com/mcp?apiKey=YOUR_CATCHALL_API_KEY"
Full integration docs: https://www.newscatcherapi.com/docs/web-search-api/integrations/mcp
Prefer to run the server yourself (locally or self-hosted)? See Running below.
Tool To Endpoint Mapping
Jobs
| MCP Tool | Method | Endpoint |
|---|---|---|
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} |
Monitors
| MCP Tool | Method | Endpoint |
|---|---|---|
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 |
Webhooks
| MCP Tool | Method | Endpoint |
|---|---|---|
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} |
Projects
| MCP Tool | Method | Endpoint |
|---|---|---|
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} |
Datasets
| MCP Tool | Method | Endpoint |
|---|---|---|
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 uploads (v1.6.1):
create_dataset_from_csvandappend_csv_to_datasettake the CSV content in thefileparameter — raw CSV text or standard base64. They never read a path from the server's filesystem, so they stay safe on a remote/hosted MCP. Inline CSV content is capped at a hard 10 MB (after base64 decoding).create_dataset_from_csvalso accepts the new optionalproject_idfield.
Entities
| MCP Tool | Method | Endpoint |
|---|---|---|
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_entityandupdate_entityaccept an optionalexternal_entity_idstring — a customer-supplied identifier that links the entity to a record in an external system.
User & Meta
| MCP Tool | Method | Endpoint |
|---|---|---|
get_user_limits |
POST |
/catchAll/user/limits |
check_health |
GET |
/health |
get_version |
GET |
/version |
Authentication
API key precedence (highest to lowest):
api_keytool parameterx-api-keyrequest headerAuthorization: Bearer <key>request header- URL query parameter
?apiKey=... CATCHALL_API_KEYenvironment variable
check_health and get_version do not require API key auth.
Hosted deployment (FastMCP Gateway)
When deployed via fastmcp.app, a stateless gateway sits in front of the server. The gateway
forwards HTTP headers to the backend but not URL query parameters. Use the x-api-key
header or CATCHALL_API_KEY environment variable instead of ?apiKey=.
Claude Code / Cursor:
{
"mcpServers": {
"catchall": {
"type": "http",
"url": "https://YOUR-DEPLOYMENT.fastmcp.app/mcp",
"headers": { "x-api-key": "YOUR_API_KEY" }
}
}
}
Or via CLI:
claude mcp add --transport http catchall "https://YOUR-DEPLOYMENT.fastmcp.app/mcp" \
--header "x-api-key: YOUR_API_KEY"
Direct server access (no gateway): ?apiKey=YOUR_KEY in the URL still works.
Core Workflow (Jobs)
- Optional: call
initialize_queryto preview validators/enrichments/date window. initialize_queryis preview-only (it does not create a job) and suggestions are non-deterministic.- Submit with
submit_query(queryrequired). You can send onlyquery; omitted optional fields are auto-selected/generated. - Optional fields are independent: provide any subset (for example, custom
validatorsonly), omitted ones are still auto-generated. start_date/end_datefilter web page discovery dates, not event dates in extracted content.- For event-time accuracy, use event-focused validators/enrichments and verify
event_datein pulled results. - Poll
get_job_status: first check after ~1-2 minutes, then every 30-60 seconds, stop oncompletedorfailed. - Pull with
pull_results; partial data appears duringenriching. - Paginate while
page < total_pagesto retrieve all available records. - Use
continue_jobonly to process more records (cost-affecting). It applies only to jobs originally submitted withlimit. continue_job.new_limitis optional; if omitted, API defaults to your plan maximum.page/page_size/total_pagesrepresent already-available records; useprogress_validated < candidate_recordsto detect if more records may still appear.
Limit vs Page Size
limit(submit_query,continue_job) controls how many records are processed and therefore affects cost. If provided, must be >= 10. Omit to retrieve everything up to your plan's maximum.page_size(pull_results,list_user_jobs) controls pagination only and does not affect processing cost.pull_results.page_sizedefault is100.page_sizerange is1..1000.pull_resultsresponse includeserror(failed jobs) andlimit(applied job limit).
API-Enforced Monitor Constraints
create_monitor.backfill=true: reference jobend_datemust be within the last 7 days.create_monitor.backfill=false: reference job age constraint does not apply.- Monitor minimum schedule frequency depends on plan.
create_monitorsupports optionallimit(minimum10),backfill(defaulttrue),timezone,webhook_ids, andproject_id.- Webhooks are centralized in v1.5.3: register them with
create_webhook, then attach by ID viacreate_monitor.webhook_ids/update_monitor.webhook_ids(no inline webhook config). - Monitors are only supported for
basejobs (notlite). enable_monitorsupports optionalbackfill.update_monitorupdateswebhook_idsand/or runlimit(passwebhook_ids=[]to clear assignments).list_monitorssupports pagination viapageandpage_sizeplussearch,ownership, andproject_idfilters; it returnstotal,page,page_size,total_pages,monitors.
Enrichment Output Notes
enrichment.enrichment_confidenceis always present.- Company enrichments are structured objects with:
source_textconfidencemetadata.namemetadata.domain_urlmetadata.domain_url_confidence
Error Handling
Tools return:
- Pretty JSON string on success.
"Error: ..."for validation/API errors."Unexpected error: ..."for unhandled exceptions.
Running
Install dependencies:
pip install -r requirements.txt
Run over stdio:
python server.py
Run over HTTP (if fastmcp CLI is available):
fastmcp run server.py:mcp --transport streamable-http --host 0.0.0.0 --port 8000
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。