Skip to main content
Glama

Server Details

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

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
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

B3.4/5.0

Scored across 61 tools

Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count1/5

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.

Completeness5/5

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

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_monitor to 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_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.

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 slug to attach to submit_query via source_groups to 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_results when 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_results when 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:

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

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

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables 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
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables 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 npm
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Live 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.
      19
      10
      240 npm
      3
      MIT
    Try in Browser

    Glama MCP Gateway

    Add one secure layer between your agents and this server.