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

# Websets MCP

Websets MCP connects AI assistants to Exa's Websets API for building and enriching collections of web entities like companies, people, and research papers.

**What you can do:**

* Find AI startups in San Francisco with funding over \$10M
* Build a database of companies and enrich with CEO names, revenue, employee counts
* Create a list of research papers and extract key findings
* Subscribe to webhooks to be notified when searches and enrichments complete
* Bring your own CSV data into Websets via imports for scoping or exclusion

## Installation

<Card title="Get your Exa API key" icon="key" horizontal href="https://dashboard.exa.ai/api-keys" />

Connect to Websets MCP:

```
https://websetsmcp.exa.ai/mcp?exaApiKey=YOUR_EXA_API_KEY
```

<Tabs>
  <Tab title="Cursor">
    [![Install with one click](https://img.shields.io/badge/Install_with_one_click-Cursor-000000?style=flat-square\&logoColor=white)](https://cursor.com/en/install-mcp?name=websets\&config=eyJuYW1lIjoid2Vic2V0cyIsInR5cGUiOiJodHRwIiwidXJsIjoiaHR0cHM6Ly93ZWJzZXRzbWNwLmV4YS5haS9tY3AifQ==)

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

    ```json theme={null}
    {
      "mcpServers": {
        "websets": {
          "url": "https://websetsmcp.exa.ai/mcp?exaApiKey=YOUR_EXA_API_KEY"
        }
      }
    }
    ```
  </Tab>

  <Tab title="VS Code">
    [![Install with one click](https://img.shields.io/badge/Install_with_one_click-VS_Code-0098FF?style=flat-square\&logo=visualstudiocode\&logoColor=white)](https://vscode.dev/redirect/mcp/install?name=websets\&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fwebsetsmcp.exa.ai%2Fmcp%22%7D)

    Or add to `.vscode/mcp.json`:

    ```json theme={null}
    {
      "servers": {
        "websets": {
          "type": "http",
          "url": "https://websetsmcp.exa.ai/mcp?exaApiKey=YOUR_EXA_API_KEY"
        }
      }
    }
    ```
  </Tab>

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

    ```bash theme={null}
    claude mcp add --transport http websets "https://websetsmcp.exa.ai/mcp?exaApiKey=YOUR_EXA_API_KEY"
    ```
  </Tab>

  <Tab title="Claude Desktop">
    Add to your Claude Desktop config file:

    **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`

    **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`

    ```json theme={null}
    {
      "mcpServers": {
        "websets": {
          "command": "npx",
          "args": ["-y", "mcp-remote", "https://websetsmcp.exa.ai/mcp?exaApiKey=YOUR_EXA_API_KEY"]
        }
      }
    }
    ```
  </Tab>

  <Tab title="Windsurf">
    Add to `~/.codeium/windsurf/mcp_config.json`:

    ```json theme={null}
    {
      "mcpServers": {
        "websets": {
          "serverUrl": "https://websetsmcp.exa.ai/mcp?exaApiKey=YOUR_EXA_API_KEY"
        }
      }
    }
    ```
  </Tab>

  <Tab title="Other">
    For other MCP clients that support remote MCP:

    ```json theme={null}
    {
      "mcpServers": {
        "websets": {
          "url": "https://websetsmcp.exa.ai/mcp?exaApiKey=YOUR_EXA_API_KEY"
        }
      }
    }
    ```

    If your client doesn't support remote MCP servers directly:

    ```json theme={null}
    {
      "mcpServers": {
        "websets": {
          "command": "npx",
          "args": ["-y", "mcp-remote", "https://websetsmcp.exa.ai/mcp?exaApiKey=YOUR_EXA_API_KEY"]
        }
      }
    }
    ```
  </Tab>
</Tabs>

<br />

<br />

## Available Tools

**Webset management**

| Tool             | Description                                                      |
| ---------------- | ---------------------------------------------------------------- |
| `create_webset`  | Create a collection with search query, criteria, and enrichments |
| `list_websets`   | List all websets in your account                                 |
| `get_webset`     | Get details about a webset                                       |
| `update_webset`  | Update a webset's title and/or metadata                          |
| `delete_webset`  | Delete a webset and all its items                                |
| `preview_webset` | Preview how a query will be interpreted before creating a webset |

**Items**

| Tool                | Description                            |
| ------------------- | -------------------------------------- |
| `list_webset_items` | List items in a webset with their data |
| `get_item`          | Get details about a specific item      |

**Searches**

| Tool            | Description                   |
| --------------- | ----------------------------- |
| `create_search` | Add more entities to a webset |
| `get_search`    | Check search status           |
| `cancel_search` | Cancel a running search       |

**Enrichments**

| Tool                | Description                                                              |
| ------------------- | ------------------------------------------------------------------------ |
| `create_enrichment` | Extract data from items (text, number, date, email, phone, url, options) |
| `get_enrichment`    | Check enrichment status                                                  |
| `cancel_enrichment` | Cancel a running enrichment                                              |

**Webhooks**

| Tool             | Description                                             |
| ---------------- | ------------------------------------------------------- |
| `create_webhook` | Subscribe to real-time HTTP callbacks for webset events |
| `get_webhook`    | Get details about a webhook                             |
| `update_webhook` | Update a webhook's URL, events, or metadata             |
| `delete_webhook` | Delete a webhook                                        |
| `list_webhooks`  | List all webhooks in your account                       |

**Imports**

| Tool            | Description                                          |
| --------------- | ---------------------------------------------------- |
| `create_import` | Upload your own CSV data into Websets                |
| `get_import`    | Get details about an import including its upload URL |
| `list_imports`  | List all imports in your account                     |

**Events**

| Tool          | Description                                                     |
| ------------- | --------------------------------------------------------------- |
| `list_events` | List system events (search, enrichment, webset lifecycle, etc.) |

<Note>
  Scheduled monitors are part of the underlying [Websets API](/websets/api/monitors/create-a-monitor) and the [websets.exa.ai](https://websets.exa.ai/) dashboard, but are not currently exposed as MCP tools.
</Note>

<br />

<Note>
  Free searches are included. A [Websets plan](https://exa.ai/pricing) is required for continued use.
</Note>

<br />

## Key Concepts

**Entity Types:** Search for different kinds of entities:

* `company` - companies and startups
* `person` - individuals (e.g., for recruiting)
* `research_paper` - academic papers
* `article` - blog posts and news articles
* `custom` - define your own entity type

**Criteria:** Natural language filters that determine which results are included. Every result must satisfy all criteria to appear in your webset. Use criteria for hard requirements like "Founded after 2020" or "Located in San Francisco".

**Enrichments:** Data extractors that pull additional information from results that have already passed your criteria. Enrichments don't affect filtering-they add columns of data to your results. Use enrichments to extract things like CEO name, employee count, or contact info.

**Enrichment Formats:** The data type for an enrichment:

* `text` - free-form text (CEO name, description)
* `number` - numeric values (employee count, revenue)
* `date` - dates (founding date, funding date)
* `email`, `phone`, `url` - contact info
* `options` - multiple choice (e.g., funding stage: Seed, Series A, Series B)

**Example:** To find AI startups and get their CEO names:

* **Criteria** (filters): "AI company", "Founded after 2020", "Has raised funding"
* **Enrichments** (data to extract): CEO name (text), funding amount (number), founding date (date)

<br />

<br />

## Resources

* [**Websets API Docs**](/websets/api/overview) - Full API reference
* [**Try Websets**](https://websets.exa.ai/) - Visual interface for websets

<Accordion title="Usage Examples" icon="magnifying-glass">
  **Create a Webset**

  ```
  Create a webset of AI startups in San Francisco founded after 2020. Find 10 companies and enrich with CEO name and funding amount.
  ```

  **Add More Entities**

  ```
  Search for 5 more AI companies that have raised Series A funding.
  ```

  **Extract Data**

  ```
  Add an enrichment to extract employee count for each company.
  ```

  **Subscribe to Events**

  ```
  Create a webhook to https://example.com/hook subscribed to webset.search.completed and webset.enrichment.completed events.
  ```
</Accordion>
