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:
x-api-keyHTTP request header — recommended for all client configurations?apiKey=YOUR_KEYURL query parameter — used by Claude.ai because its connector UI does not support custom request headersAuthorization: Bearer <key>HTTP request headerCATCHALL_API_KEYenvironment 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
--headerflag (Claude Code,mcp-remote), use theheader-name:valueformat with no space after the colon — for examplex-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,
npxoften cannot be launched directly from this config. If the server fails to start, wrap it withcmd: set"command": "cmd"and prepend"/c", "npx"to theargsarray.
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
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
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_KEYwith 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 usecontinue_jobonce the results look right.
Jobs
| Tool | Description |
|---|---|
validate_query | Check query quality before submission — returns good, needs_work, or critical with suggestions |
initialize_query | Preview suggested validators, enrichments, and date ranges before submitting a job. |
submit_query | Submit a natural language query and create a job. |
get_job_status | Check job progress through the processing pipeline |
pull_results | Retrieve validated, enriched records from a completed or in-progress job |
pull_job_csv | Download completed job results as a CSV file — prefer over pull_results when a spreadsheet format is needed |
continue_job | Expand a job to process additional records beyond the initial limit |
list_user_jobs | List all jobs submitted by the authenticated user — supports search, ownership, project_id, and mode (base or lite) filters |
delete_job | Delete a job and its results |
Event Monitors
| Tool | Description |
|---|---|
create_monitor | Create a recurring event monitor from a completed reference job |
update_monitor | Update settings (webhook IDs, per-run limit) for an existing event monitor |
list_monitors | List all event monitors for the authenticated user |
list_monitor_jobs | List all jobs produced by a specific event monitor |
pull_monitor_results | Retrieve latest aggregated results from an event monitor |
pull_monitor_csv | Download the most recent event monitor run results as a CSV file |
get_monitor_status | Get the full execution history and state changes for an event monitor |
enable_monitor | Re-enable a previously disabled event monitor |
disable_monitor | Pause an event monitor without deleting it |
delete_monitor | Permanently delete an event monitor |
Webhooks
| Tool | Description |
|---|---|
create_webhook | Register 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_webhooks | List all webhook endpoints for the authenticated user — pass an optional project_id to filter to webhooks belonging to a specific project |
get_webhook | Get full configuration details for a webhook |
update_webhook | Update webhook URL, delivery mode, or auth settings |
test_webhook | Send a test payload to verify endpoint reachability before attaching to a resource |
assign_webhook_resource | Attach a webhook to a job or event monitor |
list_webhook_resources | List all resources (jobs and event monitors) assigned to a webhook |
remove_webhook_resource | Detach a webhook from a specific resource |
list_resource_webhooks | List all webhooks attached to a specific job or event monitor |
get_webhook_history | Retrieve 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_webhook | Manually trigger webhook delivery for a job, monitor, or monitor_group — dispatch is asynchronous; use get_webhook_history to see the outcome |
delete_webhook | Delete 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
| Tool | Description |
|---|---|
create_dataset | Create a new dataset from a list of entity IDs |
list_datasets | List all datasets for the authenticated user |
get_dataset | Get dataset details and metadata |
update_dataset | Update dataset name or description |
add_dataset_entities | Add entities to an existing dataset |
remove_dataset_entities | Remove entities from a dataset |
list_dataset_entities | List all entities in a dataset |
get_dataset_status | Check dataset enrichment progress and health score |
create_dataset_from_csv | Create 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_dataset | Append entities to an existing dataset from CSV content — same file format as create_dataset_from_csv |
delete_dataset | Delete a dataset (entities are preserved) |
Entities
| Tool | Description |
|---|---|
create_entity | Create a single company or person entity. |
create_entities_batch | Bulk-create multiple entities in one call |
list_entities | List all entities for the authenticated user — pass an optional project_id to filter to entities belonging to a specific project |
get_entity | Get details for a specific entity |
update_entity | Update entity name, domain, or metadata. |
delete_entity | Delete 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.
| Tool | Description |
|---|---|
create_project | Create a new project container |
list_projects | List all projects for the authenticated user |
get_project | Get project details and metadata |
update_project | Update project name or description |
get_project_overview | Get a resource count breakdown by type and status |
add_project_resources | Add jobs, event monitors, datasets, event monitor groups, or webhooks to a project |
list_project_resources | List all resources inside a project — optionally filter by resource_type (job, monitor, dataset, monitor_group, or webhook) |
remove_project_resource | Remove a resource from a project without deleting it (webhooks are only detached — they keep existing and remain attached to any other projects) |
delete_project | Delete 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.
| Tool | Description |
|---|---|
list_source_groups | List all available source groups — returns each group's slug, name, and description; supports optional page and page_size parameters |
Meta
| Tool | Description |
|---|---|
check_health | Check API health status (no authentication required) |
get_version | Get the current API version (no authentication required) |
get_user_limits | Retrieve 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
403error, 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-remoteto proxy the connection. Install Node.js, then use thenpxconfiguration shown in the Other clients tab.
See also
Full Claude setup with MCP and Skills
Specialized agent skills for competitive intelligence, funding, M&A, and more
Full endpoint documentation and schemas
Get better results from CatchAll jobs
This documentation is built and hosted on Mintlify, a developer documentation platform.