CatchAll (by NewsCatcher)

CatchAll (by NewsCatcher)

Web search API for comprehensive event retrieval: find every relevant event across the open web — not just top results.

Category
访问服务器

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_csv and append_csv_to_dataset take the CSV content in the file parameter — 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_csv also accepts the new optional project_id field.

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_entity and update_entity accept an optional external_entity_id string — 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):

  1. api_key tool parameter
  2. x-api-key request header
  3. Authorization: Bearer <key> request header
  4. URL query parameter ?apiKey=...
  5. CATCHALL_API_KEY environment 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)

  1. Optional: call initialize_query to preview validators/enrichments/date window.
  2. initialize_query is preview-only (it does not create a job) and suggestions are non-deterministic.
  3. Submit with submit_query (query required). You can send only query; omitted optional fields are auto-selected/generated.
  4. Optional fields are independent: provide any subset (for example, custom validators only), omitted ones are still auto-generated.
  5. start_date/end_date filter web page discovery dates, not event dates in extracted content.
  6. For event-time accuracy, use event-focused validators/enrichments and verify event_date in pulled results.
  7. Poll get_job_status: first check after ~1-2 minutes, then every 30-60 seconds, stop on completed or failed.
  8. Pull with pull_results; partial data appears during enriching.
  9. Paginate while page < total_pages to retrieve all available records.
  10. Use continue_job only to process more records (cost-affecting). It applies only to jobs originally submitted with limit.
  11. continue_job.new_limit is optional; if omitted, API defaults to your plan maximum.
  12. page/page_size/total_pages represent already-available records; use progress_validated < candidate_records to 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_size default is 100.
  • page_size range is 1..1000.
  • pull_results response includes error (failed jobs) and limit (applied job limit).

API-Enforced Monitor Constraints

  • create_monitor.backfill=true: reference job end_date must 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_monitor supports optional limit (minimum 10), backfill (default true), timezone, webhook_ids, and project_id.
  • Webhooks are centralized in v1.5.3: register them with create_webhook, then attach by ID via create_monitor.webhook_ids / update_monitor.webhook_ids (no inline webhook config).
  • Monitors are only supported for base jobs (not lite).
  • enable_monitor supports optional backfill.
  • update_monitor updates webhook_ids and/or run limit (pass webhook_ids=[] to clear assignments).
  • list_monitors supports pagination via page and page_size plus search, ownership, and project_id filters; it returns total, page, page_size, total_pages, monitors.

Enrichment Output Notes

  • enrichment.enrichment_confidence is always present.
  • Company enrichments are structured objects with:
    • source_text
    • confidence
    • metadata.name
    • metadata.domain_url
    • metadata.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

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选