mcpbeat Sign in

CatchAll MCP Server

by newscatcherapi Your server? Claim it
answering

CatchAll is answering right now. Last checked 14 min ago. It exposes 61 tools. Last commit 21 Sep 2026.

Web search API: find every relevant event across the open web, not just the top results.

Uptime history 51 days of history · worst day 99%
51 days agonow
100.0%
Uptime 24h
90 of 90 checks
61
Tools
read from the server
738 ms
Response time
average over 24h
1
Stars
last commit 21 Sep 2026

What changed 18

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 13 August 2026. No other catalogue keeps this.

22 Sep a tool changed the parameters it asks for update_monitor
22 Sep a tool changed version
22 Sep a tool description was rewritten update_monitor
27 Aug 2 tools changed the parameters they ask for list_entities, list_webhooks
27 Aug a tool appeared list_source_groups
13 Aug 7 tools changed the parameters they ask for add_project_resources, create_webhook, delete_project and 4 more
13 Aug 5 tool descriptions were rewritten add_project_resources, create_webhook, delete_project and 2 more

Nothing serious here today

Today is the operative word: we check CatchAll every 15 minutes and re-read its code on every release. Watch it and you find out the day that stops being true.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 14 min ago.

run in your terminal
claude mcp add catchall --transport http https://catchall-mcp.newscatcherapi.com/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "catchall": {
      "url": "https://catchall-mcp.newscatcherapi.com/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.catchall]
url = "https://catchall-mcp.newscatcherapi.com/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "catchall": {
      "url": "https://catchall-mcp.newscatcherapi.com/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "catchall": {
      "url": "https://catchall-mcp.newscatcherapi.com/mcp"
    }
  }
}

Available tools 61

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

dataset
add_dataset_entities
Add existing entities to a dataset.
create_dataset
Create a new dataset. Datasets are collections of entities (companies/people). Connect a dataset to a job via `submit_query(connected_dataset_ids=[...])` to narrow retrieval scope.
create_dataset_from_csv
Create a new dataset by uploading a CSV file. The CSV must have at least a `name` column. For meaningful entity enrichment each row should also include a `domain` column or a `description` column (or both) — a row with only a name is accepted but produces lower-quality enrichment. Additional columns are mapped to entity attributes. Max file size is plan-dependent. To add CSV rows to an existing dataset, use `append_csv_to_dataset` instead.
delete_dataset
Permanently delete a dataset. The entities the dataset referenced are not deleted; only the dataset and its entity associations are removed.
get_dataset
Get a single dataset's details.
get_dataset_status
Get the status history of a dataset (e.g. its enrichment progress over time).
list_dataset_entities
List the entities contained in a dataset.
remove_dataset_entities
Remove entities from a dataset (the entities themselves are not deleted).
update_dataset
Update a dataset's name and/or description.
project
add_project_resources
Add one or more resources to a project. Webhooks are first-class project resources: a webhook can belong to several projects at the same time, and deleting a project only detaches its webhooks — it never deletes them.
create_project
Create a new project. Projects group related resources (jobs, monitors, datasets, monitor_groups) so you can organize work and filter listings by `project_id`.
delete_project
Delete a project. By default the project's resources (jobs, monitors, etc.) are detached but kept. Set `delete_resources=true` to also delete the contained jobs, monitors, datasets, and monitor groups. Webhooks are the exception: they are never deleted by this operation — an attached webhook is only detached from the project and keeps working (it may belong to other projects or resources independently of this one).
get_project
Get a single project's details.
get_project_overview
Get a project's resource overview (counts grouped by resource type and status).
list_project_resources
List the resources contained in a project.
remove_project_resource
Remove a single resource from a project. This detaches the resource from the project without deleting the resource itself (e.g. removing a webhook only ends its membership in this project; the webhook keeps existing and stays attached to any other projects).
update_project
Update a project's name and/or description. Only the fields you provide are changed.
webhook
create_webhook
Create a new webhook endpoint. Use when: - You want to register a URL to receive job or monitor result deliveries. - You need a webhook_id to attach to a monitor (via webhook_ids) or a job submission. - You want the webhook associated with a project from the start (pass `project_id`).
delete_webhook
Permanently delete a webhook endpoint. Use when: - You want to remove a webhook from your account.
get_webhook
Retrieve the full configuration of a specific webhook. Use when: - You want to inspect a webhook's URL, method, headers, or status by its ID.
get_webhook_history
Get webhook delivery history, either for a resource or for a webhook. Query in exactly one of two modes: - By resource: pass `resource_type` + `resource_id` to see deliveries made for a specific job/monitor/monitor_group. - By webhook: pass `webhook_id` to see every delivery made through one webhook — including manual test deliveries (from `test_webhook`), which are not tied to a job or monitor and only appear in this mode.
list_webhook_resources
List the resources mapped to a webhook. Use when: - You want to see which jobs/monitors a webhook is attached to.
remove_webhook_resource
Unmap a resource from a webhook. Use when: - You want to stop a webhook from firing for a specific job or monitor.
update_webhook
Update an existing webhook's configuration. Use when: - You want to change a webhook's URL, method, headers, or other settings. - You want to enable or disable a webhook (set `is_active`). - Only the fields you provide are updated; omitted fields remain unchanged.
monitor
create_monitor
Create a recurring monitor from a completed job. Monitors re-run a job's query on a schedule. Use the explore -> refine -> automate pattern: submit a job, refine until results match, then create a monitor. The schedule is defined in natural language (e.g., 'every day at 9 AM EST'). Always include a timezone (in the schedule text or via the `timezone` arg). API-enforced constraints apply: - If `backfill=true`, reference job end_date must be within the last 7 days - If `backfill=false`, reference job age does not matter - Minimum schedule frequency depends on your plan Webhooks are now centralized: register them with `create_webhook`, then pass their IDs here via `webhook_ids` (there is no inline webhook config anymore).
delete_monitor
Permanently delete a monitor and stop its scheduled runs. Use when: - You want to remove a monitor entirely (use `disable_monitor` to only pause it).
get_monitor_status
Get the status history of a monitor. Use when: - You want to see the timeline of a monitor's state changes (e.g. active, disabled, errored) and any related details.
list_monitor_jobs
List all jobs spawned by a monitor. Returns the history of scheduled runs for a monitor.
update_monitor
Update a monitor's schedule, timezone, webhook assignments, and per-run limit. Note: reference_job_id cannot be modified through this endpoint. Webhooks are centralized — pass webhook IDs (from `create_webhook`/`list_webhooks`).
entity
create_entity
Create a single entity (a company or person). ``name`` is required plus at least one identifying field: either ``description`` or ``additional_attributes.company_attributes.domain``.
delete_entity
Permanently delete an entity.
get_entity
Get a single entity's details.
update_entity
Update an entity's name, description, external_entity_id, and/or attributes.
pull
pull_job_csv
Download a job's results as a CSV file. Use when: - You want the full job output as a CSV for offline analysis or export. - Prefer this over `pull_results` when the consumer needs spreadsheet/CSV format.
pull_monitor_csv
Download the latest monitor run's results as a CSV file. Use when: - You want the most recent monitor run output as a CSV for offline analysis or export. - Prefer this over `pull_monitor_results` when the consumer needs spreadsheet/CSV format.
pull_monitor_results
Retrieve the latest results from a monitor. Returns the most recent run's results including run_info, records, and all_records.
pull_results
Retrieve the results of a job. Can be called before completion for partial results, or after completion for the full set. Returns clustered, validated, and enriched web results. While job status is active, call this repeatedly (typically page=1) to refresh partial output. When job reaches completed, iterate all pages. If job fails, call once more to capture any partial output.
entities
create_entities_batch
Create multiple entities in one call.
list_entities
List your entities.
job
delete_job
Permanently delete a job and its results. Use when: - You want to remove a job you no longer need from your account.
get_job_status
Check the status of a submitted job. Call this after submit_query to see if your job is ready. Status progression: submitted -> analyzing -> fetching -> clustering -> enriching -> completed/failed IMPORTANT: Jobs take several minutes to process. First check after ~1-2 minutes, then poll every 30-60 seconds. Broad searches can take 10-30+ minutes; for long jobs, poll every 60-120 seconds. Do NOT call this tool in a tight loop. Stop polling when status is `completed` or `failed`. Treat `submitted`, `analyzing`, `fetching`, `clustering`, and `enriching` as active states and continue polling. You don't need to wait for completion to pull results. Partial results are available during `enriching` — call pull_results after ~2 minutes, then poll status every 30-60 seconds and pull again for fresher results. Do not stop pulling just because an intermediate pull is empty/unchanged. Use `progress_validated` vs `candidate_records` to track whether more results may still appear (`progress_validated < candidate_records`). If transport/session fails, resume using the same `job_id`.
user
get_user_limits
Retrieve plan features and current usage limits for your API key. Use when: - You want to know how many records/jobs/monitors your plan allows. - You want to check current usage against plan limits before running a large job.
list_user_jobs
List all jobs submitted by you. Returns your job history with IDs, queries, statuses, and timestamps.
append
append_csv_to_dataset
Append entities from a CSV file to an existing dataset. Parses the CSV and appends its entities to the dataset. Each row must have a `name` column; include a `domain` or `description` column (or both) for meaningful enrichment. Duplicate rows (by name) are skipped. To create a new dataset from a CSV, use `create_dataset_from_csv` instead.
assign
assign_webhook_resource
Map a resource (job, monitor, or monitor_group) to a webhook. Use when: - You want a webhook to fire for a specific job or monitor's deliveries.
continue
continue_job
Expand a job by processing more records beyond the initial limit. This increases the number of records the system processes (which costs additional credits). Only use this when the user wants MORE data processed. This only applies to jobs originally submitted with `limit`. If a job was submitted without `limit`, there is nothing to continue. The new_limit must be greater than the previous limit when provided. If omitted, API defaults to your plan maximum.
datasets
list_datasets
List your datasets.
disable
disable_monitor
Disable a monitor to stop its scheduled runs. The monitor can be re-enabled later with enable_monitor.
enable
enable_monitor
Enable a previously disabled monitor to resume its scheduled runs.
health
check_health
Check API health status. This tool maps to GET /health and does not require an API key.
initialize
initialize_query
Preview suggested validators, enrichments, and date ranges before submitting. Use when: - You want to inspect/edit auto-generated validators/enrichments before submitting. - You want to preview date adjustments via `date_modification_message`. Do not use when: - You want to start processing immediately with final inputs (use `submit_query`). Key behavior: - Preview-only endpoint: does not create a job and does not start processing. - Suggestions are LLM-generated and not deterministic across calls. - To reuse suggestions, pass them explicitly to `submit_query`.
monitors
list_monitors
List all your monitors. Returns all monitors with their schedule, status, reference query, and webhook config.
projects
list_projects
List your projects.
resource
list_resource_webhooks
List the webhooks mapped to a specific resource (job/monitor/monitor_group). Use when: - You have a job or monitor ID and want to know which webhooks will fire for it.
source
list_source_groups
List source groups (named domain allowlists). Use when: - You want to discover reusable, named sets of source domains (public groups plus any organization-visibility groups your organization can access). - You need a group's `slug` to attach to `submit_query` via `source_groups` to scope fetching to that domain allowlist.
submit
submit_query
Create a new CatchAll processing job from a natural-language query. Use when: - You want to start a new CatchAll web research run from a user query. - You want the API to fetch/process sources and then return structured results. Do not use when: - You want status for an existing job (use `get_job_status`). - You want records for an existing job (use `pull_results`). Key rules: - `query` is required. - You can submit with only `query`; omitted optional fields (`validators`, `enrichments`, `start_date`, `end_date`) are auto-selected/generated by the API. - Optional fields are independent: you can pass any subset (for example, custom `validators` but no `enrichments`), and omitted fields are still auto-selected/generated. - When `connected_dataset_ids` is set, the `query` must describe the **topic or event type only** (e.g. "M&A activity", "regulatory filings", "executive changes"). Do NOT write things like "for my companies", "for the selected list of companies", or "news about my watchlist" — the entity filtering is applied automatically by the connected dataset. Mentioning companies in the query when a dataset is attached is redundant and degrades retrieval quality. - When `connected_dataset_ids` is set, entity-relevance validators (e.g. `company_is_primary_subject`) are generated automatically by the API. Do NOT add them manually to `validators` — they are redundant and may conflict with the auto-generated ones. Only pass validators that describe the **event or topic**, not entity filtering. - `start_date` and `end_date` filter by web page discovery date, not event date. - Discovery dates and extracted event dates can differ. For event-time accuracy, use event-focused validators/enrichments and verify `event_date` in pulled results. - `end_date` must be after `start_date`. - Dates outside your plan lookback limits return API 400. - `limit` controls processed record count (cost-affecting). Omit it to retrieve everything up to your plan's maximum. If provided, must be >= 10. - `validators` / `enrichments` may be passed either as arrays or as JSON-string arrays (for client compatibility). - `validators[].type` must be `boolean` (if omitted, it defaults to `boolean`). - `enrichments[].type` supported values: text, number, date, option, url, company. Basic examples: - validators: `[{"name":"is_acquisition_event","description":"true if page describes an acquisition","type":"boolean"}]` - enrichments: `[{"name":"acquiring_company","description":"Extract acquiring company","type":"company"},{"name":"deal_value","description":"Extract announced deal value","type":"number"}]` Next step: - Save the returned `job_id`. - Poll `get_job_status` and call `pull_results` (partial results can appear before completion).
test
test_webhook
Send a test delivery to a webhook endpoint. Use when: - You want to verify a webhook URL is reachable and correctly configured before attaching it to a monitor or job.
trigger
trigger_webhook
Manually trigger webhook delivery for a resource (job/monitor/monitor_group). Use when: - You want to (re-)send a webhook delivery on demand instead of waiting for the automatic dispatch — e.g. to replay a missed or failed delivery.
validate
validate_query
Check the quality of a query before submitting a job ("Check Query Quality"). Use when: - You want quick feedback on whether a query is well-formed for CatchAll before spending credits on a job. - You want concrete suggestions to improve a vague or overly broad query. Do not use when: - You want to preview auto-generated validators/enrichments (use `initialize_query`). - You want to actually run a search (use `submit_query`).
version
get_version
Get current API version. This tool maps to GET /version and does not require an API key.
webhooks
list_webhooks
List all your webhooks. Use when: - You want to see all webhook endpoints configured in your account. - You need to find a webhook_id to pass to monitors (via webhook_ids) or jobs.

Endpoints

URLTransportStateLatencyChecked
https://catchall-mcp.newscatcherapi.com/mcp streamable-http answering 542 ms 14 min ago

Alternatives to CatchAll

same job, measured the same way
Web Search
by groundroute

Web search for AI agents — one tool across 6 engines, routed to the cheapest + cached.

answering
Linkup
by mcparmory

Search the web and fetch pages with sourced results, optimized for AI agents

223 installs/wk local only
SSearch
by ssearch

Independent web search index for AI agents. Fast structured results via MCP and API.

7 tools answering
Deep Research MCP Server
by perufitlife

Web search, clean page reading & one-call research dossiers for AI agents. No API key.

38 installs/wk local only
AIsa Web Search & Research
by aisa

Web search and page extraction across several independent search providers.

answering
Serp Data Scraper
by jojapi

SERP data scraper: Scrape Search Results and get all the data you need. On the JoJ API marketplace.

1 tools answering
AgentIndex x402
by agentindex

Pay-per-call web search, translation and research jobs for AI agents. USDC on Base, no account.

18 tools answering
Web Search
by hec-ovi

Keyless multi-engine web search, fetch, and clean-Markdown read for AI agents. No API keys.

198 installs/wk local only

CatchAll — questions

Answers built from our own checks of this server.

What can CatchAll do?
It exposes 61 tools, read directly from the server on our last check. Among them: add_dataset_entities, add_project_resources, append_csv_to_dataset, assign_webhook_resource, check_health, continue_job and 55 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
What is CatchAll mostly used for?
Its tools cluster around dataset, project and webhook. That is what this server is built to work with — the grouping comes from the actual tool names, not from a category we assigned.
Is CatchAll working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 90 of 90 checks got a reply (100.0%), average response time 738 ms. The bar chart above shows every period we have measured.
How do I connect CatchAll?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does CatchAll need an API key?
No. CatchAll completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 61 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is CatchAll?
It answers our handshake in 738 ms on average, which is faster than 17% of all working MCP servers we measure. That is on the slow side — worth knowing if the tool sits inside an interactive loop. The comparison comes from our own checks across the whole registry, every 15 minutes.
Is CatchAll open source?
Yes — it is published under the MIT licence, written in Python, 1 stars on GitHub and 1 open issue. The source link is on this page, so you can read exactly what it does with your data before you connect it.