# CatchAll (remote · catchall-mcp.newscatcherapi.com)

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

- Trust score: 64/100 (medium)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `catchall-mcp.newscatcherapi.com`: 64/100 (this document), [markdown](https://verifymcp.io/servers/com-newscatcherapi-catchall/catchall-mcp.md), [page](https://verifymcp.io/servers/com-newscatcherapi-catchall/catchall-mcp)

## Channel facts

- Endpoint: `https://catchall-mcp.newscatcherapi.com/mcp`
- Transports: `streamable-http`
- Auth: `required`
- Version: `1.6.5`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 60 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 59/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 11125 tokens (~185/item across 60 items; 60 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http com-newscatcherapi-catchall https://catchall-mcp.newscatcherapi.com/mcp
```

### Codex

```toml
[mcp_servers.com-newscatcherapi-catchall]
url = "https://catchall-mcp.newscatcherapi.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-newscatcherapi-catchall": {
      "type": "remote",
      "url": "https://catchall-mcp.newscatcherapi.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-newscatcherapi-catchall --url https://catchall-mcp.newscatcherapi.com/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-newscatcherapi-catchall:
    url: "https://catchall-mcp.newscatcherapi.com/mcp"
```

### Other

```json
{
  "mcpServers": {
    "com-newscatcherapi-catchall": {
      "type": "http",
      "url": "https://catchall-mcp.newscatcherapi.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 64, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-01 (score 63, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 62, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 62, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 61, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 60, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 59)

First indexed and scored.

## MCP tools (60)

### `submit_query` (~1314 tokens)

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.…

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `connected_dataset_ids`: Optional list of dataset IDs whose entities narrow the retrieval scope. When set: (1) entity filtering is applied automatically — do NOT mention the company list or watchlist in `query`; (2) entity-r…
- `context` (string): Optional guidance on what to prioritize (for example, target entities, event types, and specific data points you want captured in enrichments). If a company dataset will be attached, note that entity…
- `ed_association_type` (string): Optional filter on how strongly a watchlist entity must appear in each event. Only relevant when `connected_dataset_ids` is set. - `"event_associated"`: keep only events where the entity is a **direc…
- `ed_score_min`: Optional minimum entity-domain relevance score (1-10). Only relevant when `connected_dataset_ids` is set.
- `end_date` (string): Optional ISO 8601 UTC end of search window.
- `enrichments`: Optional custom enrichments (`name`, `description`, `type`), as array or JSON-string array.
- `fetch_all_watchlist_news` (boolean): When `True`, retrieves **all** news for connected watchlist entities without applying topic filtering from `query`. Requires `connected_dataset_ids` to be set. Default: `False`.
- `limit`: Optional processing cap (minimum 10); affects cost. Omit to retrieve everything up to your plan's maximum.
- `mode` (string): Optional job processing mode: `"lite"` (faster, lower cost, less detail) or `"base"` (default, full extraction). If omitted, the API defaults to `"base"`.
- `project_id` (string): Optional project ID to associate this job with.
- `query` (string, required): Plain text search intent (required).
- `schema` (string): Optional advanced custom JSON schema string that overrides the default extraction schema. Use `initialize_query` to discover a suitable schema.
- `start_date` (string): Optional ISO 8601 UTC start of search window.
- `validators`: Optional custom boolean validators (`name`, `description`, `type`), as array or JSON-string array. When `connected_dataset_ids` is set, do NOT include entity-relevance validators such as `company_is_…
- `webhook_ids`: Optional list of webhook IDs to notify when the job completes (max 5 per job). Use `list_webhooks` / `create_webhook` to get IDs.

Output parameters:

- `result` (string)

### `initialize_query` (~387 tokens)

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`.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `context` (string): Optional guidance on what to prioritize so suggested validators, enrichments, and dates align with your target data points. If a company dataset will be attached in `submit_query`, note that entity-r…
- `fetch_all_watchlist_news` (boolean): When `True`, signals that the subsequent job will retrieve all news for connected watchlist entities without topic filtering. Pass this when you intend to use `fetch_all_watchlist_news=True` in `subm…
- `query` (string, required): Natural language query to preview (required). If you plan to attach a company dataset via `connected_dataset_ids` in the subsequent `submit_query`, do NOT reference the company list here — entity fil…

Output parameters:

- `result` (string)

### `get_job_status` (~299 tokens)

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`.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `job_id` (string, required): The job ID returned from submit_query

Output parameters:

- `result` (string)

### `pull_results` (~183 tokens)

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.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `job_id` (string, required): The job ID returned from submit_query
- `page` (integer): Page number for pagination (default: 1). Use total_pages from the response to iterate through all results.
- `page_size` (integer): Number of records returned per page (default: 100, max: 1000).

Output parameters:

- `result` (string)

### `pull_job_csv` (~99 tokens)

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.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `job_id` (string, required): The job ID to download as CSV.

Output parameters:

- `result` (string)

### `continue_job` (~158 tokens)

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.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `job_id` (string, required): The job ID to continue processing
- `new_limit`: Optional new record processing limit (must exceed the previous limit if provided).

Output parameters:

- `result` (string)

### `list_user_jobs` (~150 tokens)

List all jobs submitted by you.

Returns your job history with IDs, queries, statuses, and timestamps.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `ownership` (string): Optional ownership filter: 'all', 'own', or 'shared'.
- `page` (integer): Page number for pagination (default: 1)
- `page_size` (integer): Number of results per page (default: 100, max: 1000)
- `project_id` (string): Optional filter to jobs belonging to a specific project.
- `search` (string): Optional text filter on the job query.

Output parameters:

- `result` (string)

### `delete_job` (~77 tokens)

Permanently delete a job and its results.

Use when:
\- You want to remove a job you no longer need from your account.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `job_id` (string, required): The job ID to delete.

Output parameters:

- `result` (string)

### `validate_query` (~147 tokens)

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`).

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `query` (string, required): The natural-language query to assess (required).

Output parameters:

- `result` (string)

### `create_monitor` (~373 tokens)

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).

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `backfill` (boolean): Optional gap-fill toggle before first run (default true).
- `limit`: Optional max records per run (minimum 10). If omitted, API uses plan default.
- `project_id` (string): Optional project ID to associate this monitor with.
- `reference_job_id` (string, required): ID of a completed job to use as the template
- `schedule` (string, required): Natural language schedule (e.g., 'every day at 9 AM EST', 'every Monday at 8 AM UTC', 'every 48 hours')
- `timezone` (string): Optional IANA timezone for the schedule (e.g. 'America/New_York'). Defaults to UTC. A timezone written into the schedule text overrides this.
- `webhook_ids`: Optional list of webhook IDs to notify on each run completion (max 5).

Output parameters:

- `result` (string)

### `list_monitors` (~150 tokens)

List all your monitors.

Returns all monitors with their schedule, status, reference query, and webhook config.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `ownership` (string): Optional ownership filter: 'all', 'own', or 'shared'.
- `page` (integer): Page number for pagination (default: 1).
- `page_size` (integer): Number of results per page (default: 100, max: 1000).
- `project_id` (string): Optional filter to monitors belonging to a specific project.
- `search` (string): Optional text filter on the monitor query.

Output parameters:

- `result` (string)

### `pull_monitor_results` (~78 tokens)

Retrieve the latest results from a monitor.

Returns the most recent run's results including run_info, records, and all_records.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `monitor_id` (string, required): The monitor ID to pull results from

Output parameters:

- `result` (string)

### `pull_monitor_csv` (~104 tokens)

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.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `monitor_id` (string, required): The monitor ID to download results for.

Output parameters:

- `result` (string)

### `list_monitor_jobs` (~93 tokens)

List all jobs spawned by a monitor.

Returns the history of scheduled runs for a monitor.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `monitor_id` (string, required): The monitor ID to list jobs for
- `sort` (string): Sort order by start_date: 'asc' (default) or 'desc'

Output parameters:

- `result` (string)

### `disable_monitor` (~70 tokens)

Disable a monitor to stop its scheduled runs.

The monitor can be re-enabled later with enable_monitor.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `monitor_id` (string, required): The monitor ID to disable

Output parameters:

- `result` (string)

### `enable_monitor` (~73 tokens)

Enable a previously disabled monitor to resume its scheduled runs.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `backfill`: Optional backfill behavior for resume.
- `monitor_id` (string, required): The monitor ID to enable

Output parameters:

- `result` (string)

### `update_monitor` (~141 tokens)

Update a monitor's webhook assignments and per-run limit.

Note: schedule and reference_job_id cannot be modified through this endpoint.
Webhooks are centralized — pass webhook IDs (from `create_webhook`/`list_webhooks`).

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `limit`: Optional updated maximum records per run (minimum 10).
- `monitor_id` (string, required): The monitor ID to update
- `webhook_ids`: Optional list of webhook IDs to assign to this monitor. Pass an empty list `[]` to clear all webhook assignments.

Output parameters:

- `result` (string)

### `delete_monitor` (~83 tokens)

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).

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `monitor_id` (string, required): The monitor ID to delete.

Output parameters:

- `result` (string)

### `get_monitor_status` (~92 tokens)

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.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `monitor_id` (string, required): The monitor ID to inspect.

Output parameters:

- `result` (string)

### `list_webhooks` (~120 tokens)

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.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `page` (integer): Page number for pagination (default: 1).
- `page_size` (integer): Number of results per page (default: 100, max: 1000).

Output parameters:

- `result` (string)

### `create_webhook` (~337 tokens)

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.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `auth`: Optional auth object forwarded with each delivery. One of: - {"type": "bearer", "token": "..."} - {"type": "api_key", "header": "X-API-Key", "value": "..."} - {"type": "basic", "username": "...", "pa…
- `delivery_mode`: Optional delivery mode: 'full' (default, whole result set in one call) or 'per_record' (one call per article).
- `formatter_config`: Optional custom payload transformation config dict.
- `headers`: Optional dict of custom HTTP headers to include in deliveries.
- `method` (string): HTTP method for delivery (default 'POST'). One of GET, POST, PUT, PATCH, DELETE.
- `name` (string, required): Human-readable name for the webhook (required).
- `params`: Optional dict of query string parameters appended to the webhook URL.
- `type` (string): Optional webhook target type: 'generic' (default), 'slack', 'teams', or 'custom'. 'slack'/'teams' send pre-formatted payloads; 'generic'/'custom' send the raw result payload.
- `url` (string, required): Target URL that will receive webhook deliveries (required).

Output parameters:

- `result` (string)

### `get_webhook` (~83 tokens)

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.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `webhook_id` (string, required): The webhook ID to retrieve.

Output parameters:

- `result` (string)

### `update_webhook` (~301 tokens)

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.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `auth`: Updated auth object. One of: - {"type": "bearer", "token": "..."} - {"type": "api_key", "header": "X-API-Key", "value": "..."} - {"type": "basic", "username": "...", "password": "..."}
- `delivery_mode`: Updated delivery mode: 'full' or 'per_record'.
- `formatter_config`: Updated formatter configuration dict.
- `headers`: Updated dict of custom HTTP headers.
- `is_active`: Set to false to disable the webhook (stop deliveries), true to re-enable it.
- `method`: Updated HTTP method: one of GET, POST, PUT, PATCH, DELETE.
- `name`: Updated webhook name.
- `params`: Updated dict of query string parameters.
- `type`: Updated webhook type: 'generic', 'slack', 'teams', or 'custom'.
- `url`: Updated target URL.
- `webhook_id` (string, required): The webhook ID to update.

Output parameters:

- `result` (string)

### `delete_webhook` (~72 tokens)

Permanently delete a webhook endpoint.

Use when:
\- You want to remove a webhook from your account.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `webhook_id` (string, required): The webhook ID to delete.

Output parameters:

- `result` (string)

### `test_webhook` (~113 tokens)

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.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `payload`: Optional custom JSON object to send as the test body. If omitted, the API sends a default sample payload.
- `webhook_id` (string, required): The webhook ID to test.

Output parameters:

- `result` (string)

### `assign_webhook_resource` (~131 tokens)

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.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `resource_id` (string, required): The ID of the job/monitor/monitor_group to map.
- `resource_type` (string, required): Resource type: 'job', 'monitor', or 'monitor_group'.
- `webhook_id` (string, required): The webhook ID to attach the resource to.

Output parameters:

- `result` (string)

### `list_webhook_resources` (~143 tokens)

List the resources mapped to a webhook.

Use when:
\- You want to see which jobs/monitors a webhook is attached to.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `page` (integer): Page number for pagination (default: 1).
- `page_size` (integer): Number of results per page (default: 100, max: 1000).
- `resource_type` (string): Optional filter: 'job', 'monitor', or 'monitor_group'.
- `webhook_id` (string, required): The webhook ID whose resource mappings you want.

Output parameters:

- `result` (string)

### `remove_webhook_resource` (~122 tokens)

Unmap a resource from a webhook.

Use when:
\- You want to stop a webhook from firing for a specific job or monitor.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `resource_id` (string, required): The ID of the mapped job/monitor/monitor_group.
- `resource_type` (string, required): Resource type: 'job', 'monitor', or 'monitor_group'.
- `webhook_id` (string, required): The webhook ID to detach the resource from.

Output parameters:

- `result` (string)

### `list_resource_webhooks` (~179 tokens)

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.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `is_active`: Optional filter — only active (true) or inactive (false) webhooks.
- `page` (integer): Page number for pagination (default: 1).
- `page_size` (integer): Number of results per page (default: 100, max: 1000).
- `resource_id` (string, required): The ID of the job/monitor/monitor_group.
- `resource_type` (string, required): Resource type: 'job', 'monitor', or 'monitor_group'.

Output parameters:

- `result` (string)

### `get_webhook_history` (~157 tokens)

Get the webhook delivery history for a resource (job/monitor/monitor_group).

Use when:
\- You want to see past webhook delivery attempts and their outcomes for a
  specific job or monitor.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `page` (integer): Page number for pagination (default: 1).
- `page_size` (integer): Number of results per page (default: 50, max: 500).
- `resource_id` (string, required): The ID of the job/monitor/monitor_group.
- `resource_type` (string, required): Resource type: 'job', 'monitor', or 'monitor_group'.

Output parameters:

- `result` (string)

### `trigger_webhook` (~187 tokens)

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.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `job_id` (string): Optional job ID whose payload should be delivered (e.g. a specific monitor run's job). If omitted, the API picks the resource's payload itself.
- `resource_id` (string, required): The ID of the job/monitor/monitor_group to trigger delivery for.
- `resource_type` (string, required): Resource type: 'job', 'monitor', or 'monitor_group'.
- `webhook_id` (string, required): The webhook ID to deliver through.

Output parameters:

- `result` (string)

### `create_dataset` (~133 tokens)

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.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `description` (string): Optional dataset description.
- `entity_ids`: Optional list of existing entity IDs to seed the dataset with.
- `name` (string, required): Human-readable dataset name (required).
- `project_id` (string): Optional project ID to associate this dataset with.

Output parameters:

- `result` (string)

### `list_datasets` (~199 tokens)

List your datasets.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `latest_status` (string): Optional status filter: 'pending', 'enriching', 'ready', or 'failed'.
- `ownership` (string): Optional ownership filter: 'all', 'own', or 'shared'.
- `page` (integer): Page number for pagination (default: 1).
- `page_size` (integer): Number of results per page (default: 100, max: 1000).
- `project_id` (string): Optional filter to datasets belonging to a specific project.
- `search` (string): Optional text filter on the dataset name.
- `sort_by` (string): Optional sort field: 'name', 'created_at', or 'status'.
- `sort_order` (string): Optional sort direction: 'asc' or 'desc'.

Output parameters:

- `result` (string)

### `get_dataset` (~57 tokens)

Get a single dataset's details.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `dataset_id` (string, required): The dataset ID to retrieve.

Output parameters:

- `result` (string)

### `update_dataset` (~77 tokens)

Update a dataset's name and/or description.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `dataset_id` (string, required): The dataset ID to update.
- `description`: Optional new dataset description.
- `name`: Optional new dataset name.

Output parameters:

- `result` (string)

### `delete_dataset` (~76 tokens)

Permanently delete a dataset.

The entities the dataset referenced are not deleted; only the dataset and its
entity associations are removed.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `dataset_id` (string, required): The dataset ID to delete.

Output parameters:

- `result` (string)

### `add_dataset_entities` (~76 tokens)

Add existing entities to a dataset.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `dataset_id` (string, required): The dataset ID to add entities to.
- `entity_ids` (array, required): List of entity IDs to add (required).

Output parameters:

- `result` (string)

### `remove_dataset_entities` (~82 tokens)

Remove entities from a dataset (the entities themselves are not deleted).

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `dataset_id` (string, required): The dataset ID to remove entities from.
- `entity_ids` (array, required): List of entity IDs to remove (required).

Output parameters:

- `result` (string)

### `list_dataset_entities` (~191 tokens)

List the entities contained in a dataset.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `dataset_id` (string, required): The dataset ID whose entities you want.
- `entity_type` (string): Optional type filter: 'company' or 'person'.
- `page` (integer): Page number for pagination (default: 1).
- `page_size` (integer): Number of results per page (default: 100).
- `search` (string): Optional text filter on entity name.
- `sort_by` (string): Optional sort field: 'created_at', 'name', or 'status'.
- `sort_order` (string): Optional sort direction: 'asc' or 'desc'.
- `status` (string): Optional status filter: 'pending', 'enriching', 'ready', or 'failed'.

Output parameters:

- `result` (string)

### `get_dataset_status` (~68 tokens)

Get the status history of a dataset (e.g. its enrichment progress over time).

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `dataset_id` (string, required): The dataset ID to inspect.

Output parameters:

- `result` (string)

### `create_dataset_from_csv` (~229 tokens)

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.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `description` (string): Optional dataset description.
- `file` (string, required): CSV content (required) — raw CSV text or standard base64-encoded CSV, capped at 10 MB after decoding. Server-side file paths are not accepted.
- `name` (string, required): Human-readable dataset name (required).
- `project_id` (string): Optional project ID to associate this dataset with (new in 1.6.1).

Output parameters:

- `result` (string)

### `append_csv_to_dataset` (~178 tokens)

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.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `dataset_id` (string, required): The dataset ID to append entities to (required).
- `file` (string, required): CSV content (required) — raw CSV text or standard base64-encoded CSV, capped at 10 MB after decoding. Server-side file paths are not accepted.

Output parameters:

- `result` (string)

### `create_entity` (~193 tokens)

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``.

Input parameters:

- `additional_attributes`: Optional structured attributes. For companies, use `{"company_attributes": {"alternative_names": [...], "domain": "...", "key_persons": [...], "description": "..."}}`.
- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `description` (string): Optional description of the entity.
- `entity_type` (string): Optional entity type: 'company' (default) or 'person'.
- `external_entity_id`: Optional customer-supplied identifier linking this entity to an external system's record (new in 1.6.3).
- `name` (string, required): Entity name (required).

Output parameters:

- `result` (string)

### `list_entities` (~177 tokens)

List your entities.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `entity_type` (string): Optional type filter: 'company' or 'person'.
- `page` (integer): Page number for pagination (default: 1).
- `page_size` (integer): Number of results per page (default: 100, max: 1000).
- `search` (string): Optional text filter on entity name.
- `sort_by` (string): Optional sort field: 'created_at', 'name', or 'status'.
- `sort_order` (string): Optional sort direction: 'asc' or 'desc'.
- `status` (string): Optional status filter: 'pending', 'enriching', 'ready', or 'failed'.

Output parameters:

- `result` (string)

### `create_entities_batch` (~122 tokens)

Create multiple entities in one call.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `entities` (required): A list of entity objects. Each object requires a ``name`` plus one identifying field for good enrichment: either a top-level ``"description"`` or ``"additional_attributes": {"company_attributes": {"d…

Output parameters:

- `result` (string)

### `get_entity` (~57 tokens)

Get a single entity's details.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `entity_id` (string, required): The entity ID to retrieve.

Output parameters:

- `result` (string)

### `update_entity` (~137 tokens)

Update an entity's name, description, external_entity_id, and/or attributes.

Input parameters:

- `additional_attributes`: Optional updated structured attributes (see `create_entity` for the company_attributes shape).
- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `description`: Optional new description.
- `entity_id` (string, required): The entity ID to update.
- `external_entity_id`: Optional customer-supplied identifier linking this entity to an external system's record (new in 1.6.3).
- `name`: Optional new entity name.

Output parameters:

- `result` (string)

### `delete_entity` (~56 tokens)

Permanently delete an entity.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `entity_id` (string, required): The entity ID to delete.

Output parameters:

- `result` (string)

### `create_project` (~92 tokens)

Create a new project.

Projects group related resources (jobs, monitors, datasets, monitor_groups)
so you can organize work and filter listings by `project_id`.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `description` (string): Optional project description.
- `name` (string, required): Human-readable project name (required).

Output parameters:

- `result` (string)

### `list_projects` (~115 tokens)

List your projects.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `ownership` (string): Optional ownership filter: 'all', 'own', or 'shared'.
- `page` (integer): Page number for pagination (default: 1).
- `page_size` (integer): Number of results per page (default: 100, max: 1000).
- `search` (string): Optional text filter on the project name.

Output parameters:

- `result` (string)

### `get_project` (~56 tokens)

Get a single project's details.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `project_id` (string, required): The project ID to retrieve.

Output parameters:

- `result` (string)

### `update_project` (~84 tokens)

Update a project's name and/or description.

Only the fields you provide are changed.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `description`: Optional new project description.
- `name`: Optional new project name.
- `project_id` (string, required): The project ID to update.

Output parameters:

- `result` (string)

### `delete_project` (~105 tokens)

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 resources.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `delete_resources` (boolean): If true, also delete the project's resources (default false).
- `project_id` (string, required): The project ID to delete.

Output parameters:

- `result` (string)

### `get_project_overview` (~66 tokens)

Get a project's resource overview (counts grouped by resource type and status).

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `project_id` (string, required): The project ID to summarize.

Output parameters:

- `result` (string)

### `add_project_resources` (~120 tokens)

Add one or more resources to a project.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `project_id` (string, required): The project ID to add resources to.
- `resources` (required): A list of resource objects, each `{"resource_type": ..., "resource_id": ...}`. `resource_type` is one of: 'job', 'monitor', 'dataset', 'monitor_group'. May also be passed as a JSON-string array for c…

Output parameters:

- `result` (string)

### `list_project_resources` (~125 tokens)

List the resources contained in a project.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `page` (integer): Page number for pagination (default: 1).
- `page_size` (integer): Number of results per page (default: 100, max: 1000).
- `project_id` (string, required): The project ID whose resources you want.
- `resource_type` (string): Optional filter: 'job', 'monitor', 'dataset', or 'monitor_group'.

Output parameters:

- `result` (string)

### `remove_project_resource` (~101 tokens)

Remove a single resource from a project.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.
- `project_id` (string, required): The project ID to remove the resource from.
- `resource_id` (string, required): The ID of the resource to remove.
- `resource_type` (string, required): Resource type: 'job', 'monitor', 'dataset', or 'monitor_group'.

Output parameters:

- `result` (string)

### `get_user_limits` (~85 tokens)

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.

Input parameters:

- `api_key` (string): CatchAll API key. Optional if provided via x-api-key header or CATCHALL_API_KEY env var.

Output parameters:

- `result` (string)

### `check_health` (~41 tokens)

Check API health status.

This tool maps to GET /health and does not require an API key.

Input parameters:

- `api_key` (string): Optional CatchAll API key.

Output parameters:

- `result` (string)

### `get_version` (~41 tokens)

Get current API version.

This tool maps to GET /version and does not require an API key.

Input parameters:

- `api_key` (string): Optional CatchAll API key.

Output parameters:

- `result` (string)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-newscatcherapi-catchall/catchall-mcp#diagnostics

## Score history

- 2026-08-03: 64
- 2026-08-02: 63
- 2026-08-01: 63
- 2026-07-31: 62
- 2026-07-30: 62
- 2026-07-29: 61
- 2026-07-28: 60
- 2026-07-27: 60
- 2026-07-26: 59

## Links

- Remote endpoint: https://catchall-mcp.newscatcherapi.com/mcp
- Authorisation metadata: https://catchall-mcp.newscatcherapi.com/.well-known/oauth-protected-resource/mcp
- Repository: https://github.com/Newscatcher/catchall-mcp
- Changelog RSS feed: https://verifymcp.io/servers/com-newscatcherapi-catchall/catchall-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-newscatcherapi-catchall/catchall-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/com-newscatcherapi-catchall/catchall-mcp
