npm package: @nerdydata/mcp
Description: MCP server for NerdyData API — search websites by source code, technology stack, analyze domains, and download lead lists through LLM chat
Author: NerdyData
Latest version: 1.0.3

# NerdyData MCP Server

Search millions of websites by source code, technology stack, look up domain profiles, and export lead lists through Claude, Cursor, ChatGPT, Windsurf, and any MCP-compatible AI assistant — all in natural language.

## Prerequisites

- Node.js 18 or later
- A NerdyData API key — get one at [nerdydata.com/api](https://www.nerdydata.com/api)

## Setup

### Claude / Cursor / Windsurf / other MCP clients

Add this to `.mcp.json` or wherever your MCP configuration is found. Or just ask your LLM to "install @nerdydata/mcp"!

```json
{
  "mcpServers": {
    "nerdydata": {
      "command": "npx",
      "args": ["-y", "@nerdydata/mcp"],
      "env": {
        "NERDYDATA_API_KEY": "your-api-key-here"
      }
    }
  }
}
```

## Available Tools

| Tool                      | What it does                                                                                            |
| ------------------------- | ------------------------------------------------------------------------------------------------------- |
| `get_suggestions`         | Find technology report IDs by name (e.g. "Shopify", "Klaviyo"). Use this first.                         |
| `search_code`             | Search websites by technology or code snippet. Returns company info, emails, LinkedIn, spend estimates. |
| `search_titles`           | Search websites by their `<title>` tag content.                                                         |
| `search_descriptions`     | Search websites by their `<meta description>` content.                                                  |
| `create_download`         | Queue a full CSV export of matching websites. Returns a job ID.                                         |
| `get_download`            | Poll a download job by ID. Returns a file URL when ready.                                               |
| `get_domain`              | Look up a domain's metadata: company, employees, spend, emails, social profiles.                        |
| `get_domain_technologies` | See what technologies a specific domain uses.                                                           |

## Example Prompts

**Find Shopify stores:**

> "How many websites use Shopify? Show me some examples."

**Boolean search — Shopify AND Klaviyo, not Mailchimp:**

> "Find websites that use both Shopify and Klaviyo but not Mailchimp."

**Domain lookup:**

> "What technologies does allbirds.com use?"
> "What's the company info for braze.com?"

**Export leads:**

> "Download the full list of Shopify stores in the US."

## How the Search Object Works

When searching by technology, the LLM will:

1. Call `get_suggestions` to look up the UUID for each technology name
2. Build a `search` object with `all` (AND), `any` (OR), and `none` (NOT) arrays
3. Pass report UUIDs (from suggestions) or raw code snippets as search items

Example search object (built automatically):

```json
{
  "all": [
    { "type": "report", "value": "d513e568-ad32-44b5-b0c8-1b7d3fbe88a6" }
  ],
  "none": [{ "type": "code", "value": "mailchimp.com" }]
}
```

## Troubleshooting

**"NERDYDATA_API_KEY environment variable is required"**
The API key wasn't passed. Double-check the `env` block in your MCP config.

**"NerdyData API error 401"**
Your API key is invalid or expired. Get a new one at [nerdydata.com/api](https://www.nerdydata.com/api).

**"NerdyData API error 402" / upgrade required**
Your plan doesn't include this feature. Check your subscription at nerdydata.com/billing.

**Tools not appearing in Claude Desktop**
Restart Claude Desktop after editing the config file. Check the config file is valid JSON.