CatchAll
Server Details
Web search API: find every relevant event across the open web, not just the top results.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- Newscatcher/catchall-mcp
- GitHub Stars
- 1
- Server Listing
- CatchAll (by NewsCatcher)
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 61 tools
Most tools have clearly distinct resource/action scopes, especially across jobs, datasets, entities, monitors, projects, and webhooks. A few webhook-management tools are easy to confuse because their names reverse subject/object order, such as list_resource_webhooks vs list_webhook_resources, but the descriptions generally clarify the intended use.
Tool names consistently use snake_case verb_noun patterns such as create_project, list_datasets, update_webhook, and delete_monitor. Minor variants like create_dataset_from_csv and pull_job_csv still follow the same readable convention.
At 61 tools, the surface is far beyond a practical MCP toolset and creates high selection/cognitive overhead even though the domain is broad. While many tools map to legitimate resources, the count is extreme for an agent-facing interface.
The surface covers full lifecycle operations for jobs, datasets, entities, projects, monitors, and webhooks, including creation, listing, retrieval, updates, deletion, status checks, and result exports. Account health, version, and plan-limit tools are also present, leaving few obvious gaps.
Available Tools
61 toolsadd_dataset_entitiesAdd Dataset EntitiesCInspect
Add existing entities to a dataset.
Inputs: dataset_id (required), entity_ids (required), api_key. Returns: result
add_project_resourcesAdd Project ResourcesBInspect
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.
Inputs: resources (required), project_id (required), api_key. Returns: result
append_csv_to_datasetAppend Csv To DatasetAInspect
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.
Inputs: file (required), dataset_id (required), api_key. Returns: result
assign_webhook_resourceAssign Webhook ResourceBInspect
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.
Inputs: webhook_id (required), resource_id (required), resource_type (required), api_key. Returns: result
check_healthCheck HealthAInspect
Check API health status.
This tool maps to GET /health and does not require an API key.
Inputs: api_key. Returns: result
continue_jobContinue JobAInspect
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.
Inputs: job_id (required), api_key, new_limit. Returns: result
create_datasetCreate DatasetCInspect
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.
Inputs: name (required), api_key, entity_ids, project_id, +1 more. Returns: result
create_dataset_from_csvCreate Dataset From CsvAInspect
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.
Inputs: file (required), name (required), api_key, project_id, +1 more. Returns: result
create_entities_batchCreate Entities BatchBInspect
Create multiple entities in one call.
Inputs: entities (required), api_key. Returns: result
create_entityCreate EntityBInspect
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.
Inputs: name (required), api_key, description, entity_type, +2 more. Returns: result
create_monitorCreate MonitorAInspect
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 daysIf
backfill=false, reference job age does not matterMinimum 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).
Inputs: schedule (required), reference_job_id (required), limit, api_key, +4 more. Returns: result
create_projectCreate ProjectAInspect
Create a new project.
Projects group related resources (jobs, monitors, datasets, monitor_groups)
so you can organize work and filter listings by project_id.
Inputs: name (required), api_key, description. Returns: result
create_webhookCreate WebhookAInspect
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).
Inputs: url (required), name (required), auth, type, +7 more. Returns: result
delete_datasetDelete DatasetAInspect
Permanently delete a dataset.
The entities the dataset referenced are not deleted; only the dataset and its entity associations are removed.
Inputs: dataset_id (required), api_key. Returns: result
delete_entityDelete EntityCInspect
Permanently delete an entity.
Inputs: entity_id (required), api_key. Returns: result
delete_jobDelete JobAInspect
Permanently delete a job and its results.
Use when:
You want to remove a job you no longer need from your account.
Inputs: job_id (required), api_key. Returns: result
delete_monitorDelete MonitorAInspect
Permanently delete a monitor and stop its scheduled runs.
Use when:
You want to remove a monitor entirely (use
disable_monitorto only pause it).
Inputs: monitor_id (required), api_key. Returns: result
delete_projectDelete ProjectAInspect
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).
Inputs: project_id (required), api_key, delete_resources. Returns: result
delete_webhookDelete WebhookAInspect
Permanently delete a webhook endpoint.
Use when:
You want to remove a webhook from your account.
Inputs: webhook_id (required), api_key. Returns: result
disable_monitorDisable MonitorAInspect
Disable a monitor to stop its scheduled runs.
The monitor can be re-enabled later with enable_monitor.
Inputs: monitor_id (required), api_key. Returns: result
enable_monitorEnable MonitorAInspect
Enable a previously disabled monitor to resume its scheduled runs.
Inputs: monitor_id (required), api_key, backfill. Returns: result
get_datasetGet DatasetBInspect
Get a single dataset's details.
Inputs: dataset_id (required), api_key. Returns: result
get_dataset_statusGet Dataset StatusBInspect
Get the status history of a dataset (e.g. its enrichment progress over time).
Inputs: dataset_id (required), api_key. Returns: result
get_entityGet EntityAInspect
Get a single entity's details.
Inputs: entity_id (required), api_key. Returns: result
get_job_statusGet Job StatusAInspect
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.
Inputs: job_id (required), api_key. Returns: result
get_monitor_statusGet Monitor StatusAInspect
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.
Inputs: monitor_id (required), api_key. Returns: result
get_projectGet ProjectBInspect
Get a single project's details.
Inputs: project_id (required), api_key. Returns: result
get_project_overviewGet Project OverviewAInspect
Get a project's resource overview (counts grouped by resource type and status).
Inputs: project_id (required), api_key. Returns: result
get_user_limitsGet User LimitsAInspect
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.
Inputs: api_key. Returns: result
get_versionGet VersionAInspect
Get current API version.
This tool maps to GET /version and does not require an API key.
Inputs: api_key. Returns: result
get_webhookGet WebhookAInspect
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.
Inputs: webhook_id (required), api_key. Returns: result
get_webhook_historyGet Webhook HistoryAInspect
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_idto see deliveries made for a specific job/monitor/monitor_group.By webhook: pass
webhook_idto see every delivery made through one webhook — including manual test deliveries (fromtest_webhook), which are not tied to a job or monitor and only appear in this mode.
Inputs: page, api_key, page_size, webhook_id, +2 more. Returns: result
initialize_queryInitialize QueryAInspect
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.
Inputs: query (required), api_key, context, fetch_all_watchlist_news. Returns: result
list_dataset_entitiesList Dataset EntitiesBInspect
List the entities contained in a dataset.
Inputs: dataset_id (required), page, search, status, +5 more. Returns: result
list_datasetsList DatasetsCInspect
List your datasets.
Inputs: page, search, api_key, sort_by, +5 more. Returns: result
list_entitiesList EntitiesCInspect
List your entities.
Inputs: page, search, status, api_key, +5 more. Returns: result
list_monitor_jobsList Monitor JobsAInspect
List all jobs spawned by a monitor.
Returns the history of scheduled runs for a monitor.
Inputs: monitor_id (required), sort, api_key. Returns: result
list_monitorsList MonitorsAInspect
List all your monitors.
Returns all monitors with their schedule, status, reference query, and webhook config.
Inputs: page, search, api_key, ownership, +2 more. Returns: result
list_project_resourcesList Project ResourcesBInspect
List the resources contained in a project.
Inputs: project_id (required), page, api_key, page_size, +1 more. Returns: result
list_projectsList ProjectsCInspect
List your projects.
Inputs: page, search, api_key, ownership, +1 more. Returns: result
list_resource_webhooksList Resource WebhooksAInspect
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.
Inputs: resource_id (required), resource_type (required), page, api_key, +2 more. Returns: result
list_source_groupsList Source GroupsAInspect
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
slugto attach tosubmit_queryviasource_groupsto scope fetching to that domain allowlist.
Inputs: page, api_key, page_size. Returns: result
list_user_jobsList User JobsAInspect
List all jobs submitted by you.
Returns your job history with IDs, queries, statuses, and timestamps.
Inputs: mode, page, search, api_key, +3 more. Returns: result
list_webhook_resourcesList Webhook ResourcesAInspect
List the resources mapped to a webhook.
Use when:
You want to see which jobs/monitors a webhook is attached to.
Inputs: webhook_id (required), page, api_key, page_size, +1 more. Returns: result
list_webhooksList WebhooksAInspect
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.
Inputs: page, api_key, page_size, project_id. Returns: result
pull_job_csvPull Job CsvAInspect
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_resultswhen the consumer needs spreadsheet/CSV format.
Inputs: job_id (required), api_key. Returns: result
pull_monitor_csvPull Monitor CsvAInspect
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_resultswhen the consumer needs spreadsheet/CSV format.
Inputs: monitor_id (required), api_key. Returns: result
pull_monitor_resultsPull Monitor ResultsBInspect
Retrieve the latest results from a monitor.
Returns the most recent run's results including run_info, records, and all_records.
Inputs: monitor_id (required), api_key. Returns: result
pull_resultsPull ResultsAInspect
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.
Inputs: job_id (required), page, api_key, page_size. Returns: result
remove_dataset_entitiesRemove Dataset EntitiesAInspect
Remove entities from a dataset (the entities themselves are not deleted).
Inputs: dataset_id (required), entity_ids (required), api_key. Returns: result
remove_project_resourceRemove Project ResourceAInspect
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).
Inputs: project_id (required), resource_id (required), resource_type (required), api_key. Returns: result
remove_webhook_resourceRemove Webhook ResourceAInspect
Unmap a resource from a webhook.
Use when:
You want to stop a webhook from firing for a specific job or monitor.
Inputs: webhook_id (required), resource_id (required), resource_type (required), api_key. Returns: result
submit_querySubmit QueryAInspect
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:
queryis 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
validatorsbut noenrichments), and omitted fields are still auto-selected/generated.When
connected_dataset_idsis set, thequerymust 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_idsis set, entity-relevance validators (e.g.company_is_primary_subject) are generated automatically by the API. Do NOT add them manually tovalidators— they are redundant and may conflict with the auto-generated ones. Only pass validators that describe the event or topic, not entity filtering.start_dateandend_datefilter 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_datein pulled results.end_datemust be afterstart_date.Dates outside your plan lookback limits return API 400.
limitcontrols processed record count (cost-affecting). Omit it to retrieve everything up to your plan's maximum. If provided, must be >= 10.validators/enrichmentsmay be passed either as arrays or as JSON-string arrays (for client compatibility).validators[].typemust beboolean(if omitted, it defaults toboolean).enrichments[].typesupported 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_statusand callpull_results(partial results can appear before completion).
Inputs: query (required), mode, limit, schema, +13 more. Returns: result
test_webhookTest WebhookAInspect
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.
Inputs: webhook_id (required), api_key, payload. Returns: result
trigger_webhookTrigger WebhookAInspect
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.
Inputs: webhook_id (required), resource_id (required), resource_type (required), job_id, +1 more. Returns: result
update_datasetUpdate DatasetCInspect
Update a dataset's name and/or description.
Inputs: dataset_id (required), name, api_key, description. Returns: result
update_entityUpdate EntityBInspect
Update an entity's name, description, external_entity_id, and/or attributes.
Inputs: entity_id (required), name, api_key, description, +2 more. Returns: result
update_monitorUpdate MonitorAInspect
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).
Inputs: monitor_id (required), limit, api_key, schedule, +2 more. Returns: result
update_projectUpdate ProjectAInspect
Update a project's name and/or description.
Only the fields you provide are changed.
Inputs: project_id (required), name, api_key, description. Returns: result
update_webhookUpdate WebhookAInspect
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.
Inputs: webhook_id (required), url, auth, name, +8 more. Returns: result
validate_queryValidate QueryAInspect
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).
Inputs: query (required), api_key. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
Read-only search of upcoming local events worldwide: music, comedy, AI/tech, arts, food, sports.
Free US local event search. No signup or API key; 90-day lookahead. Paid commercial and bulk access.
Search the web, images, videos, news, and local businesses with robust filters, freshness controls…
Find public EventMatey events that organisers have approved for AI discovery.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables natural-language event searches through Google Events, returning structured JSON with dates, venues, ticket links, and map details, plus support for localization, filters, and pagination.2-
- AlicenseNot gradedqualityCmaintenanceEnables users to search US concerts, comedy, theater, trivia, festivals, community events, and family activities by location, date, interests, and budget, returning event details and source links without requiring an account or API key for basic search.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to search event calendars by keyword and list upcoming or date-filtered events from a chosen calendar, returning titles, dates, venues, coordinates, and keywords.349 npmMIT

OpenSERPofficial
AlicenseAqualityBmaintenanceLive search on six engines (Google, Bing, Yandex, Baidu, DuckDuckGo, Ecosia), image search and single/batch page extraction for AI agents. Keeps source engine and rank. Runs against a self-hosted OpenSERP server or OpenSERP Cloud.1910240 npm3MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.