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

# MCP server

> Connect Up2Data to Claude, Cursor, VS Code, and any other MCP client — full API surface as tools.

Up2Data ships a [Model Context Protocol](https://modelcontextprotocol.io) server that exposes the **entire Gateway API** as tools: enrich, search, engagement, batch, Signals, and account. Give your agent an API key and it can pull live B2B data mid-conversation.

The hosted endpoint is embedded in the Gateway — same API keys, credits, rate limits, and pay-on-success semantics as REST.

<Note>
  This is the **API MCP** (`https://api.up2data.ai/mcp`) — billable enrich/search/Signals tools.
  It is not Mintlify's docs-search MCP (read-only help for this documentation site).
</Note>

|                |                                                          |
| -------------- | -------------------------------------------------------- |
| **Remote URL** | `https://api.up2data.ai/mcp`                             |
| **Auth**       | `Authorization: Bearer <UP2DATA_API_KEY>` or `X-API-Key` |
| **Transport**  | Streamable HTTP (stateless JSON)                         |
| **Stdio**      | `npx -y up2data mcp` (run `up2data login` once first)    |
| **Tools**      | 41 — full REST parity, prefixed `up2data_`               |

Prefer the terminal over an agent? The same package is a full shell [CLI](/cli).

<Warning>
  Tool calls are billable. Enrich and search charge on success; Signal checks charge per run. Prefer `up2data_account_get` to confirm balance before large searches.
</Warning>

## Get an API key

Create a key in the [dashboard](https://up2data.ai/dash). New accounts start with free trial credits.

```bash theme={null}
export UP2DATA_API_KEY="u2d_live_..."
```

## Install

### Cursor (remote)

Add to `~/.cursor/mcp.json` (or project `.cursor/mcp.json`):

```json theme={null}
{
  "mcpServers": {
    "up2data": {
      "url": "https://api.up2data.ai/mcp",
      "headers": {
        "Authorization": "Bearer u2d_live_..."
      }
    }
  }
}
```

### Cursor (stdio / npx)

```bash theme={null}
npx -y up2data login    # opens browser, saves key locally
```

```json theme={null}
{
  "mcpServers": {
    "up2data": {
      "command": "npx",
      "args": ["-y", "up2data", "mcp"]
    }
  }
}
```

Credentials live in `~/.config/up2data/credentials.json`. You can still pass `UP2DATA_API_KEY` in `env` to override. The same credentials power the [shell CLI](/cli).

### Claude Code

```bash theme={null}
claude mcp add --transport http up2data https://api.up2data.ai/mcp \
  --header "Authorization: Bearer $UP2DATA_API_KEY"
```

Or stdio (after `npx -y up2data login`):

```bash theme={null}
claude mcp add up2data -- npx -y up2data mcp
```

### Claude Desktop

In Claude Desktop → Settings → Developer → Edit Config (after `up2data login`):

```json theme={null}
{
  "mcpServers": {
    "up2data": {
      "command": "npx",
      "args": ["-y", "up2data", "mcp"]
    }
  }
}
```

### VS Code

Add to `.vscode/mcp.json`:

```json theme={null}
{
  "servers": {
    "up2data": {
      "type": "http",
      "url": "https://api.up2data.ai/mcp",
      "headers": {
        "Authorization": "Bearer u2d_live_..."
      }
    }
  }
}
```

## Quick try

Once connected, ask your agent:

> Use Up2Data to enrich `https://linkedin.com/in/satyanadella` and summarize the current role.

The agent should call `up2data_profile_enrich` (1 credit on success) and return structured profile data plus `meta.creditsUsed` / `meta.creditsRemaining`.

## Tools & credits

All tool names are prefixed with `up2data_`. Failed scrapes are free (pay-on-success) unless noted.

### Enrich

| Tool                     | Credits               |
| ------------------------ | --------------------- |
| `up2data_profile_enrich` | 1 / profile (success) |
| `up2data_company_enrich` | 1 / company (success) |
| `up2data_post_enrich`    | 1 / post (success)    |
| `up2data_job_enrich`     | 1 / job (success)     |

### Search

| Tool                                 | Credits                 |
| ------------------------------------ | ----------------------- |
| `up2data_search_people`              | 2 / page (≤25 results)  |
| `up2data_search_people_sales_nav`    | 2 / page                |
| `up2data_search_companies`           | 2 / page                |
| `up2data_search_companies_sales_nav` | 2 / page                |
| `up2data_search_jobs`                | 1 / job returned        |
| `up2data_search_posts`               | 2 / page when non-empty |

Search accepts either structured `filters` **or** a LinkedIn / Sales Nav URL — not both.

### Related data

| Tool                              | Credits                      |
| --------------------------------- | ---------------------------- |
| `up2data_profile_activity`        | 2 / page when items returned |
| `up2data_profile_recommendations` | 1 per non-empty direction    |
| `up2data_company_posts`           | 1 / post                     |
| `up2data_company_insights`        | 5 (success)                  |
| `up2data_company_headcount`       | 1 (success)                  |
| `up2data_company_jobs_count`      | 1 (success)                  |
| `up2data_post_comments`           | 1 / comment                  |
| `up2data_post_reactions`          | 1 / reaction                 |
| `up2data_post_reposts`            | 1 / repost                   |

### Batch

| Tool                   | Credits                                  |
| ---------------------- | ---------------------------------------- |
| `up2data_batch_create` | Free to create; items bill when resolved |
| `up2data_batch_get`    | Free to poll                             |

### Signals & account

| Tool                                                                                                                          | Credits                 |
| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------- |
| `up2data_signal_create` / `_bulk_create` / `_list` / `_get` / `_update` / `_delete`                                           | Free (management)       |
| `up2data_signal_pause` / `_resume` / `_pause_by_tag` / `_resume_by_tag`                                                       | Free                    |
| `up2data_signal_check_now` / `_test`                                                                                          | Bills underlying scrape |
| `up2data_signal_test_webhook` / `_triggers` / `up2data_triggers_*` / `up2data_webhook_delivery_get` / `up2data_signals_usage` | Free                    |
| `up2data_account_get` / `_update`                                                                                             | Free                    |

Full pricing context: [Credits & billing](/concepts/credits). Signal check billing: [Signals](/concepts/signals).

## Auth notes

* Prefer `Authorization: Bearer <key>` (primary). `X-API-Key` is also accepted.
* Remote clients must send the key as an HTTP header on every request to `/mcp`.
* The stdio package reads a key from `up2data login` (`~/.config/up2data/credentials.json`) or `UP2DATA_API_KEY`, then forwards it as a Bearer token to the Gateway.
* Optional overrides: `UP2DATA_BASE_URL` (default `https://api.up2data.ai`), `UP2DATA_APP_URL` (default `https://up2data.ai`).

## Troubleshooting

| Symptom                        | Fix                                                                                                            |
| ------------------------------ | -------------------------------------------------------------------------------------------------------------- |
| `401` / `invalid_api_key`      | Run `up2data login` again, or check the remote `headers.Authorization` value and that the key is not revoked.  |
| CLI says missing key           | Run `up2data login` in a terminal (browser auth) or paste a key from [API keys](https://up2data.ai/dash/keys). |
| `402` / `insufficient_credits` | Top up in the [dashboard](https://up2data.ai/dash) or lower `max_results`.                                     |
| `429` / `rate_limited`         | Back off; respect `retry-after`.                                                                               |
| Tool missing                   | Restart the MCP client after Gateway deploys; tool list is served live from `/mcp`.                            |
| Long-running enrich/search     | Calls can take tens of seconds — keep client timeouts ≥ 120s.                                                  |

## REST parity

Every MCP tool maps 1:1 onto a `/v1/*` route. Prefer MCP for agents, the [CLI](/cli) for shell scripts, and [REST](/api-reference/introduction) for production pipelines. OpenAPI: `https://docs.up2data.ai/openapi.yaml`.
