CatchAll (by NewsCatcher)

CatchAll — это API веб-поиска, созданный для всестороннего извлечения событий: не ранжированных результатов, а всех соответствующих записей.

Документация

CatchAll MCP server

Connect CatchAll to any MCP-compatible client for structured web research.

The MCP server exposes CatchAll API tools to any MCP-compatible client. It handles authentication, tool routing, and response formatting so the client can submit jobs, poll status, retrieve results, manage event monitors, configure webhooks, build company monitors with datasets and entities, and organize work into projects.

Before you start

  • CatchAll API key from platform.newscatcherapi.com
  • MCP-compatible client (Claude, Cursor, VS Code, Windsurf, Zed, Warp, Gemini CLI, Roo Code, or any client that supports remote MCP)

Authentication

The MCP server resolves your API key from multiple sources:

  1. x-api-key HTTP request header — recommended for all client configurations
  2. ?apiKey=YOUR_KEY URL query parameter — used by Claude.ai because its connector UI does not support custom request headers
  3. Authorization: Bearer <key> HTTP request header
  4. CATCHALL_API_KEY environment variable on the server host

Most client configurations use option 1 (the x-api-key header). Claude.ai uses option 2 (the apiKey query parameter) automatically. The tools check_health and get_version do not require authentication.

To rotate your key, update your client configuration with the new key and restart the client.

[!NOTE]

When you pass the key through a --header flag (Claude Code, mcp-remote), use the header-name:value format with no space after the colon — for example x-api-key:YOUR_CATCHALL_API_KEY. A space or a missing colon is the most common reason a connection silently fails to authenticate.

[!WARNING]

Your configuration file contains your API key in plain text. Treat it as a secret and do not share it or commit it to version control.

Connect to Claude

Claude.ai

1. Open connectors

Go to claude.ai/customize/connectors. Click + and select Add custom connector.

2. Configure connection

Fill in the Add custom connector dialog:

  • Name: CatchAll
  • Remote MCP server URL:
https://catchall-mcp.newscatcherapi.com/mcp?apiKey=YOUR_CATCHALL_API_KEY

3. Add and verify

Click Add. Verify that CatchAll appears under Web in your connectors list.

4. Test connection

Open a new chat and ask Claude to run check_health. This tool needs no API key, so a successful response confirms the connection itself works — isolating connection problems from key problems. Then try a real query, for example: "Find AI company acquisitions in the last 7 days, limit 10". Claude should call the CatchAll tools and return structured results.

[!TIP]

For Claude-specific features like the SKILL file and Python agents, see Claude integration.

Claude Desktop

Claude Desktop supports remote MCP servers through the Connectors UI (Settings > Customize > Connectors) — the same flow as Claude.ai.

Alternatively, you can configure it via a JSON config file. This approach does not support native remote MCP, so it requires mcp-remote as a proxy.

1. Install Node.js

Run node --version to check if Node.js is installed. If the command fails, download and install it from nodejs.org before continuing.

2. Fix npm permissions (once)

Run this once to avoid permission errors when using npx:

sudo chown -R $(whoami) ~/.npm

3. Install mcp-remote

npm install -g mcp-remote

4. Open configuration file

macOS

~/Library/Application Support/Claude/claude_desktop_config.json

Windows

%APPDATA%\Claude\claude_desktop_config.json

Or open it from Claude Desktop: Settings > Developer > Edit Config.

5. Add CatchAll entry

Paste the following into the file:

{
  "mcpServers": {
    "catchall": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://catchall-mcp.newscatcherapi.com/mcp",
        "--header",
        "x-api-key:YOUR_CATCHALL_API_KEY"
      ]
    }
  }
}

Write the header value as x-api-key:YOUR_CATCHALL_API_KEY with no space after the colon (see Authentication).

[!NOTE]

On Windows, npx often cannot be launched directly from this config. If the server fails to start, wrap it with cmd: set "command": "cmd" and prepend "/c", "npx" to the args array.

6. Restart Claude Desktop

Save the file and quit Claude Desktop completely, then relaunch it. Claude Desktop loads MCP tools on startup.

7. Verify connection

Go to Settings > Developer. Next to catchall, the status should show running. To confirm end to end, open a new chat and ask Claude to run check_health — it needs no API key, so a clean response proves the connection works.

[!TIP]

For Claude-specific features like the SKILL file and Python agents, see Claude integration.

Claude Code

1. Add the server

Run in your terminal:

claude mcp add --transport http catchall \
  "https://catchall-mcp.newscatcherapi.com/mcp" \
  --header "x-api-key:YOUR_CATCHALL_API_KEY"

Keep the colon tight: x-api-key:YOUR_CATCHALL_API_KEY with no space after the colon, or the header is sent malformed (see Authentication).

2. Verify connection

Run claude mcp list and confirm catchall is listed, or type /mcp inside a Claude Code session to see it marked as connected.

3. Test connection

In a session, ask Claude to run check_health. This tool needs no API key, so a successful response confirms the connection works before you spend credits on a real query. Then try: "Find AI company acquisitions in the last 7 days, limit 10".

[!TIP]

For Claude-specific features like the SKILL file and Python agents, see Claude integration.

Connect to other clients

Cursor

Install in Cursor

Or add to ~/.cursor/mcp.json manually:

{
  "mcpServers": {
    "catchall": {
      "type": "http",
      "url": "https://catchall-mcp.newscatcherapi.com/mcp?apiKey=YOUR_CATCHALL_API_KEY"
    }
  }
}

Restart Cursor after saving.

VS Code

Install in VS Code

Or add to .vscode/mcp.json in your project root manually:

{
  "servers": {
    "catchall": {
      "type": "http",
      "url": "https://catchall-mcp.newscatcherapi.com/mcp?apiKey=YOUR_CATCHALL_API_KEY"
    }
  }
}

Restart VS Code after saving.

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "catchall": {
      "serverUrl": "https://catchall-mcp.newscatcherapi.com/mcp",
      "headers": {
        "x-api-key": "YOUR_CATCHALL_API_KEY"
      }
    }
  }
}

Restart Windsurf after saving.

Zed

Add to your Zed settings (~/.config/zed/settings.json):

{
  "context_servers": {
    "catchall": {
      "url": "https://catchall-mcp.newscatcherapi.com/mcp",
      "headers": {
        "x-api-key": "YOUR_CATCHALL_API_KEY"
      }
    }
  }
}

Restart Zed after saving.

Warp

Go to Settings > MCP Servers > Add MCP Server and add:

{
  "catchall": {
    "url": "https://catchall-mcp.newscatcherapi.com/mcp",
    "headers": {
      "x-api-key": "YOUR_CATCHALL_API_KEY"
    }
  }
}

Gemini CLI

Add to ~/.gemini/settings.json:

{
  "mcpServers": {
    "catchall": {
      "httpUrl": "https://catchall-mcp.newscatcherapi.com/mcp",
      "headers": {
        "x-api-key": "YOUR_CATCHALL_API_KEY"
      }
    }
  }
}

Restart Gemini CLI after saving.

Roo Code

Add to your Roo Code MCP config:

{
  "mcpServers": {
    "catchall": {
      "type": "streamable-http",
      "url": "https://catchall-mcp.newscatcherapi.com/mcp",
      "headers": {
        "x-api-key": "YOUR_CATCHALL_API_KEY"
      }
    }
  }
}

Restart Roo Code after saving.

Other clients

For clients that support native HTTP MCP with headers:

{
  "mcpServers": {
    "catchall": {
      "url": "https://catchall-mcp.newscatcherapi.com/mcp",
      "headers": {
        "x-api-key": "YOUR_CATCHALL_API_KEY"
      }
    }
  }
}

If your client does not support remote MCP servers natively, use mcp-remote as a proxy:

{
  "mcpServers": {
    "catchall": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://catchall-mcp.newscatcherapi.com/mcp",
        "--header",
        "x-api-key:YOUR_CATCHALL_API_KEY"
      ]
    }
  }
}

Write the header value as x-api-key:YOUR_CATCHALL_API_KEY with no space after the colon (see Authentication).

Restart your client after saving the configuration.

[!NOTE]

Replace YOUR_CATCHALL_API_KEY with your key. Do not share it or commit it to version control.

Available tools

Each tool maps to a CatchAll API endpoint. For request and response schemas, see the API reference.

The server ships usage guidance to the client automatically, so Claude already knows the job lifecycle — submit_query creates a job, get_job_status polls it, and pull_results retrieves records once it completes. You do not need to explain this flow yourself.

[!NOTE]

Jobs consume API credits in proportion to how many records they process. When testing a new query, pass a small limit (for example, "limit 10") to keep cost low, then raise it or use continue_job once the results look right.

Jobs

ToolDescription
validate_queryCheck query quality before submission — returns good, needs_work, or critical with suggestions
initialize_queryPreview suggested validators, enrichments, and date ranges before submitting a job.
submit_querySubmit a natural language query and create a job.
get_job_statusCheck job progress through the processing pipeline
pull_resultsRetrieve validated, enriched records from a completed or in-progress job
pull_job_csvDownload completed job results as a CSV file — prefer over pull_results when a spreadsheet format is needed
continue_jobExpand a job to process additional records beyond the initial limit
list_user_jobsList all jobs submitted by the authenticated user — supports search, ownership, project_id, and mode (base or lite) filters
delete_jobDelete a job and its results

Event Monitors

ToolDescription
create_monitorCreate a recurring event monitor from a completed reference job
update_monitorUpdate settings (webhook IDs, per-run limit) for an existing event monitor
list_monitorsList all event monitors for the authenticated user
list_monitor_jobsList all jobs produced by a specific event monitor
pull_monitor_resultsRetrieve latest aggregated results from an event monitor
pull_monitor_csvDownload the most recent event monitor run results as a CSV file
get_monitor_statusGet the full execution history and state changes for an event monitor
enable_monitorRe-enable a previously disabled event monitor
disable_monitorPause an event monitor without deleting it
delete_monitorPermanently delete an event monitor

Webhooks

ToolDescription
create_webhookRegister a named webhook endpoint with delivery mode and auth configuration — pass an optional project_id to attach the webhook to a project immediately on creation
list_webhooksList all webhook endpoints for the authenticated user — pass an optional project_id to filter to webhooks belonging to a specific project
get_webhookGet full configuration details for a webhook
update_webhookUpdate webhook URL, delivery mode, or auth settings
test_webhookSend a test payload to verify endpoint reachability before attaching to a resource
assign_webhook_resourceAttach a webhook to a job or event monitor
list_webhook_resourcesList all resources (jobs and event monitors) assigned to a webhook
remove_webhook_resourceDetach a webhook from a specific resource
list_resource_webhooksList all webhooks attached to a specific job or event monitor
get_webhook_historyRetrieve delivery history in one of two modes: pass resource_type + resource_id to see deliveries for a specific job/monitor/monitor_group, or pass webhook_id to see all deliveries through one webhook (exactly one mode per call). Manual test deliveries from test_webhook only appear in webhook mode and are recorded with resource_type: "test"
trigger_webhookManually trigger webhook delivery for a job, monitor, or monitor_group — dispatch is asynchronous; use get_webhook_history to see the outcome
delete_webhookDelete a webhook endpoint

Datasets & Entities

Datasets are named collections of entities (companies or people) used to scope job results to a predefined watchlist. Pass connected_dataset_ids in submit_query to activate company search mode.

Datasets

ToolDescription
create_datasetCreate a new dataset from a list of entity IDs
list_datasetsList all datasets for the authenticated user
get_datasetGet dataset details and metadata
update_datasetUpdate dataset name or description
add_dataset_entitiesAdd entities to an existing dataset
remove_dataset_entitiesRemove entities from a dataset
list_dataset_entitiesList all entities in a dataset
get_dataset_statusCheck dataset enrichment progress and health score
create_dataset_from_csvCreate a new dataset by uploading CSV content — pass raw CSV text or base64 in the file parameter (inline content only, 10 MB cap; server-side file paths are not accepted)
append_csv_to_datasetAppend entities to an existing dataset from CSV content — same file format as create_dataset_from_csv
delete_datasetDelete a dataset (entities are preserved)

Entities

ToolDescription
create_entityCreate a single company or person entity.
create_entities_batchBulk-create multiple entities in one call
list_entitiesList all entities for the authenticated user — pass an optional project_id to filter to entities belonging to a specific project
get_entityGet details for a specific entity
update_entityUpdate entity name, domain, or metadata.
delete_entityDelete an entity

Projects

Projects group related jobs, event monitors, datasets, and webhooks into named containers that can be shared with teammates and filtered across all list endpoints.

The resource_type field accepted by project resource tools is one of: job, monitor, dataset, monitor_group, or webhook. A webhook can belong to several projects at once. Deleting a project detaches its webhooks but never deletes them — the response's deleted_resources map includes a webhook_unlinked count for webhooks that were detached.

ToolDescription
create_projectCreate a new project container
list_projectsList all projects for the authenticated user
get_projectGet project details and metadata
update_projectUpdate project name or description
get_project_overviewGet a resource count breakdown by type and status
add_project_resourcesAdd jobs, event monitors, datasets, event monitor groups, or webhooks to a project
list_project_resourcesList all resources inside a project — optionally filter by resource_type (job, monitor, dataset, monitor_group, or webhook)
remove_project_resourceRemove a resource from a project without deleting it (webhooks are only detached — they keep existing and remain attached to any other projects)
delete_projectDelete a project — contained jobs, event monitors, datasets, and event monitor groups are deleted when delete_resources=true; webhooks are always only detached, never deleted

Source Groups

Source groups are named, reusable domain allowlists — public groups plus any organization-visibility groups your organization can access. Use a group's slug to scope a job's fetching to that domain allowlist.

ToolDescription
list_source_groupsList all available source groups — returns each group's slug, name, and description; supports optional page and page_size parameters

Meta

ToolDescription
check_healthCheck API health status (no authentication required)
get_versionGet the current API version (no authentication required)
get_user_limitsRetrieve plan features and current usage against plan limits

Troubleshooting

Tools not appearing

Restart your MCP client after updating the configuration. Most clients load MCP tools on startup and do not detect changes until restarted.

Connection refused or timeout

Verify your API key is valid by calling an authenticated endpoint:

curl -X POST "https://catchall.newscatcherapi.com/catchAll/initialize" \
  -H "x-api-key: YOUR_CATCHALL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "test"}'

If this returns a 403 error, your key is invalid. Check it at platform.newscatcherapi.com.

Tool calls returning errors

When a tool call fails, the MCP server reports a real tool error (isError=True) carrying the upstream status code and message — for example, API Error (401): Api key not found. Check the error message returned by your client for the specific status code and reason.

Client does not support remote MCP

Use mcp-remote to proxy the connection. Install Node.js, then use the npx configuration shown in the Other clients tab.

See also

Claude integration

Full Claude setup with MCP and Skills

CatchAll Skills

Specialized agent skills for competitive intelligence, funding, M&A, and more

API reference

Full endpoint documentation and schemas

Write effective queries

Get better results from CatchAll jobs

This documentation is built and hosted on Mintlify, a developer documentation platform.