> ## Documentation Index
> Fetch the complete documentation index at: https://newscatcherinc-docs.mintlify.site/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Claude integration

> Use CatchAll in Claude with MCP for chat-based research or the Python SDK for programmatic workflows.

CatchAll integrates with Claude through two paths:

* **MCP server**: Connects CatchAll as a tool in Claude's chat interface. Claude
  calls pre-built tools to submit jobs, poll status, and pull results — no code
  execution required.
* **Python agent**: Uses the Anthropic SDK to run CatchAll queries
  programmatically in an agentic loop.

You can also load a
[CatchAll Skill](/docs/web-search-api/integrations/skill) alongside either path to
give Claude query-writing rules, validator patterns, and output templates for
specific use cases — without any extra configuration.

## Before you start

* CatchAll API key from
  [platform.newscatcherapi.com](https://platform.newscatcherapi.com)
* Claude account at [claude.ai](https://claude.ai)
* Anthropic API key (only for [Python agent](#python-agent) usage)

## Connect MCP server

The MCP server authenticates with the CatchAll API and exposes tools in Claude.

<Tabs>
  <Tab title="Claude.ai">
    <Steps>
      <Step title="Open connectors">
        Go to [claude.ai/customize/connectors](https://claude.ai/customize/connectors). Click **+** and select **Add custom connector**.
      </Step>

      <Step title="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
        ```
      </Step>

      <Step title="Add and verify">
        Click **Add**. Verify that CatchAll appears under **Web** in your connectors list.
      </Step>

      <Step title="Test connection">
        Open a new chat and type a CatchAll query, for example: "Find AI company acquisitions in the last 7 days, limit 5". Claude should call the CatchAll tools and return structured results.
      </Step>
    </Steps>
  </Tab>

  <Tab title="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.

    <Steps>
      <Step title="Install Node.js">
        Run `node --version` to check if Node.js is installed. If the command fails, download and install it from [nodejs.org](https://nodejs.org) before continuing.
      </Step>

      <Step title="Fix npm permissions (once)">
        Run this once to avoid permission errors when using `npx`:

        ```bash theme={null}
        sudo chown -R $(whoami) ~/.npm
        ```
      </Step>

      <Step title="Install mcp-remote">
        ```bash theme={null}
        npm install -g mcp-remote
        ```
      </Step>

      <Step title="Open configuration file">
        <Tabs>
          <Tab title="macOS">
            ```txt theme={null}
            ~/Library/Application Support/Claude/claude_desktop_config.json
            ```
          </Tab>

          <Tab title="Windows">
            ```txt theme={null}
            %APPDATA%\Claude\claude_desktop_config.json
            ```
          </Tab>
        </Tabs>

        Or open it from Claude Desktop: **Settings > Developer > Edit Config**.
      </Step>

      <Step title="Add CatchAll entry">
        Paste the following into the file:

        ```json theme={null}
        {
          "mcpServers": {
            "catchall": {
              "command": "npx",
              "args": [
                "mcp-remote",
                "https://catchall-mcp.newscatcherapi.com/mcp",
                "--header",
                "x-api-key:YOUR_CATCHALL_API_KEY"
              ]
            }
          }
        }
        ```
      </Step>

      <Step title="Restart Claude Desktop">
        Save the file and quit Claude Desktop completely, then relaunch it. Claude Desktop loads MCP tools on startup.
      </Step>

      <Step title="Verify connection">
        Go to **Settings > Developer**. Next to **catchall**, the status should show **running**.
      </Step>
    </Steps>
  </Tab>

  <Tab title="Claude Code">
    Run in your terminal:

    ```bash theme={null}
    claude mcp add --transport http catchall \
      "https://catchall-mcp.newscatcherapi.com/mcp" \
      --header "x-api-key:YOUR_CATCHALL_API_KEY"
    ```
  </Tab>
</Tabs>

<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.
</Warning>

## Available tools

The MCP server exposes multiple tools across six categories: **Jobs** (validate,
initialize, submit, poll, pull results, continue, list, delete), **Monitors**
(create, update, list, poll results, get status history, enable, disable,
delete), **Webhooks** (create, test, assign to resources, inspect delivery
history), **Datasets & Entities** (build company watchlists, attach them to
jobs for company-scoped results), **Projects** (group related resources and
share them with teammates), and **Meta** (health, version, plan limits).

For the full tool reference with parameter details, see
[MCP server > Available tools](/docs/web-search-api/integrations/mcp#available-tools).

<Tip>
  Pair the MCP connection with a [CatchAll Skill](/docs/web-search-api/integrations/skill)
  to give Claude domain-specific query rules and output templates on top of the
  raw MCP tools — for example, the Fundraising skill knows which validators and
  enrichments to apply to a funding query, and the Competitor Snapshot skill
  runs seven parallel intelligence queries and formats the results into a
  structured digest.
</Tip>

## Python agent

To use CatchAll programmatically with Claude, use the Anthropic SDK to execute
CatchAll API calls in an agentic loop.

### Setup

```bash theme={null}
pip install -r requirements.txt
```

Set environment variables:

```bash theme={null}
export CATCHALL_API_KEY=YOUR_CATCHALL_API_KEY
export ANTHROPIC_API_KEY=YOUR_ANTHROPIC_API_KEY
```

### Basic agent example

The agent uses hardcoded tool definitions and a standard agentic loop: submit,
wait, poll for status, pull results.

```python theme={null}
client = anthropic.Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])

response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=4096,
    tools=TOOLS,  # Hardcoded tool definitions in claude_agent_example.py
    messages=[
        {"role": "user", "content": "Find pharma M&A deals in the last 7 days, limit 20"}
    ]
)
```

For the complete implementation, including polling and result handling, see the
[agent example on GitHub](https://github.com/Newscatcher/newscatcher-catchall-integrations/blob/main/Claude/Claude%20Agent/claude_agent_example.py).

A skill-based variant is also available — it loads a CatchAll Skill as the
system prompt so Claude automatically follows the skill's query-writing rules
without hardcoded tool logic. See
[`claude_agent_skill_example.py`](https://github.com/Newscatcher/newscatcher-catchall-integrations/blob/main/Claude/Claude%20Agent/claude_agent_skill_example.py)
on GitHub.

## See also

<CardGroup cols={2}>
  <Card title="CatchAll Skills" icon="bolt" href="/docs/web-search-api/integrations/skill">
    Specialized skills for competitive intelligence, funding, M\&A, and more
  </Card>

  <Card title="MCP server" icon="plug" href="/docs/web-search-api/integrations/mcp">
    Server architecture, authentication, and tool definitions
  </Card>

  <Card title="Write effective queries" icon="pencil" href="/docs/web-search-api/how-to/write-effective-queries">
    Get better results from CatchAll jobs
  </Card>

  <Card title="API reference" icon="book" href="/docs/web-search-api/api-reference/jobs/create-job">
    Full endpoint documentation
  </Card>
</CardGroup>
