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

# MCP Server

> The Paradime MCP server exposes your warehouse, dbt™ catalog, lineage, and Bolt orchestration to any MCP client via a single authenticated endpoint.

The Paradime MCP Server is a single, authenticated remote endpoint that brings DinoAI's full context graph — your warehouse, repositories, dbt™ catalog, lineage, and Bolt orchestration — to any MCP-compatible AI client.

This guide walks you through generating an access token, configuring your client, and verifying the connection.

<Check>
  **Setup takes about a minute.** If you already have a Paradime account, you can be connected and running queries in your AI client before this page finishes loading.
</Check>

### Before you start

You need:

* A **Paradime account**. Business and read-only seats are free — if you don't have access, ask your data team to invite you to your workspace.
* An **MCP-compatible client**. Claude (Desktop or web), Claude Code, ChatGPT, GitHub Copilot, Cursor, and OpenCode are all supported. See [Client setup](#step-3-add-paradime-to-your-client) below.
* Your data team has **configured the workspace integrations** the MCP should expose (warehouse, code repository, BI tools). The MCP inherits your workspace's existing connections — there's nothing extra to configure on the MCP side.

<Info>
  The MCP server uses the **same access boundaries** as the rest of Paradime. Your token can only reach the integrations your workspace has connected, and only with the permissions your role allows.
</Info>

### Step 1: Generate your MCP token

1. Log in to Paradime at [app.paradime.io](https://app.paradime.io/).
2. Open **Settings → API keys** ([direct link](https://app.paradime.io/settings/api-keys)).
3. Click **Generate MCP token**.
4. Give the token a recognisable name (for example, `claude-desktop-laptop` or `cursor-work-mbp`). Naming tokens per device makes it easier to rotate or revoke them later and a lifetime in days
5. Copy the token **and** the MCP server URL shown next to it. You'll need both in Step 3.

<Warning>
  **Treat your MCP token like a password.** It carries your full Paradime permissions. Never commit it to a repository, paste it into a shared document, or share it with teammates.\
  \
  If you suspect a token is compromised, return to **Settings → API keys** and revoke it. Generate a new one to replace it.
</Warning>

### Step 2: Copy the MCP server URL

The MCP server URL is shown alongside your token in the API keys page. It will look like:

```
https://<region>.paradime.io/api/v1/<company-token>/mcp
```

Copy this URL exactly as displayed. It's specific to your Paradime instance.

<Info>
  If you belong to **multiple Paradime workspaces** - for example, separate workspaces for finance, marketing, and engineering, that's not a problem. One single MCP endpoint allows you to access across workspaces you have access to.
</Info>

### Step 3: Add Paradime to your client

The flow is the same in every client: add a remote MCP server, paste the URL from Step 2, paste the token from Step 1. Pick your client for the exact steps:

<CardGroup cols={2}>
  <Card title="Claude Desktop & claude.ai" href="/products/dino-ai/mcp-server/claude-desktop" />

  <Card title="Claude Code" href="/products/dino-ai/mcp-server/claude-code" />

  <Card title="Cursor" href="/products/dino-ai/mcp-server/cursor" />

  <Card title="GitHub Copilot" href="/products/dino-ai/mcp-server/github-copilot" />

  <Card title="OpenCode" href="/products/dino-ai/mcp-server/opencode" />

  <Card title="Kiro" href="/products/dino-ai/mcp-server/kiro" />

  <Card title="Amazon Quick" href="/products/dino-ai/mcp-server/amazon-quick" />

  <Card title="Other clients" href="/products/dino-ai/mcp-server/other-clients" />
</CardGroup>

### Step 4: Verify the connection

To confirm your connection is healthy, ask your AI client a simple question that requires Paradime context. For example:

> *"Use Paradime to list my Bolt schedules."*

or

> *"Use Paradime to search the catalog for models that touch the orders table."*

If your client returns real data from your workspace, you're connected. If you get an error, jump to [Troubleshooting](#troubleshooting) below.

### Available tools

Once connected, your client has access to all 26 tools below.

#### Code & repository

| Tool                           | What it does                                                                    |
| ------------------------------ | ------------------------------------------------------------------------------- |
| `read_file`                    | Read any file in your connected code repository (SQL, Python, YAML, etc.).      |
| `rename_file`                  | Rename a file in the repo. Parent directories are created automatically.        |
| `search_files_and_directories` | Find files and folders by glob pattern (`**/*.sql`, `models/staging/**`).       |
| `ripgrep_search`               | High-speed regex search across the entire repo with context lines.              |
| `create_pull_request`          | Open a new PR - including drafts — using the connected user's GitHub account.   |
| `read_pull_request`            | Pull PR metadata, the full code diff, CI status, or review and inline comments. |
| `list_pull_requests`           | List PRs by state, branch, sort order, or popularity.                           |

#### Data warehouse & catalog

| Tool                       | What it does                                                                                              |
| -------------------------- | --------------------------------------------------------------------------------------------------------- |
| `run_sql_query`            | Execute SQL against your warehouse and return results as CSV (Snowflake, BigQuery, Databricks, Redshift). |
| `search_catalog`           | Search the unified catalog — dbt™ models, sources, tests, macros, plus Looker, Tableau, Fivetran assets.  |
| `get_column_level_lineage` | Trace upstream and downstream dependencies for any column in any model.                                   |

#### dbt Discovery

Read-only dbt™ project metadata from your Bolt runs' artifacts, mirroring the [dbt-mcp](https://github.com/dbt-labs/dbt-mcp) Discovery toolset. See [dbt Discovery Tools](/products/dino-ai/tools-and-features/dbt-discovery-tools).

| Tool                    | What it does                                                                      |
| ----------------------- | --------------------------------------------------------------------------------- |
| `get_all_models`        | List every model with its name, unique ID, and description.                       |
| `get_mart_models`       | List mart models only (`fct_`/`dim_` prefixes or a `marts/` path).                |
| `get_all_sources`       | List sources with their freshness status, filterable by source name.              |
| `get_all_macros`        | List macros, with dbt Labs builtin packages excluded by default.                  |
| `get_exposures`         | List downstream dashboards, apps, and analyses.                                   |
| `get_lineage`           | Return the lineage graph around a node, filterable by type, depth, and direction. |
| `get_model_health`      | Report a model's last run status, test statuses, and upstream parents' health.    |
| `get_model_performance` | Return historical run timings for a model, newest first.                          |
| `get_node_details`      | Full details for any model, source, exposure, test, seed, snapshot, or macro.     |

#### Bolt orchestration

| Tool                        | What it does                                                                                                                                                                                                                                                                                                            |
| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `list_bolt_schedules`       | List every active Bolt schedule with name, UUID, cron, owner, and configured commands.                                                                                                                                                                                                                                  |
| `get_bolt_run_logs`         | Pull AI-generated failure summaries for a specific run or the most recent run.                                                                                                                                                                                                                                          |
| `trigger_bolt_schedule_run` | Kick off a new run of a Bolt schedule by `slug` (required — get it from `list_bolt_schedules`). Optional `branch` to run against a different git branch or commit, and optional `commands` (array of strings) to override the schedule's configured commands. Omit both to run with defaults. Returns the new `run_id`. |

#### Workspace management

| Tool               | What it does                                                                      |
| ------------------ | --------------------------------------------------------------------------------- |
| `list_workspaces`  | List every Paradime workspace your account has access to.                         |
| `switch_workspace` | Switch the active workspace — useful when you have multiple workspaces connected. |

#### Web & research

| Tool                  | What it does                                                                              |
| --------------------- | ----------------------------------------------------------------------------------------- |
| `execute_web_search`  | General-purpose web search, with optional domain restrictions (e.g. limit to docs sites). |
| `perplexity_search`   | Real-time web search via the Perplexity API for up-to-date documentation and references.  |
| `extract_url_content` | Pull clean text content from any HTTP/HTTPS URL.                                          |

### Troubleshooting

<Accordion title="'Authentication failed' or '401 Unauthorized'">
  Your token is either expired, revoked, or pasted incorrectly.

  * Check **Settings → API keys** in Paradime to confirm the token still exists.
  * Make sure you copied the **full** token without trailing whitespace.
  * If unsure, generate a new token and re-add the connector with the fresh value.
</Accordion>

<Accordion title="'Connection failed' or the connector won't authorize">
  * Confirm the **MCP server URL** is correct — it includes a workspace ID at the end and is unique to your workspace.
  * Check that your network or VPN isn't blocking outbound HTTPS to `*.paradime.io`.
  * Make sure your client supports **remote** MCP servers (over HTTP/SSE), not just local stdio servers.
</Accordion>

<Accordion title="The MCP is connected but tools return empty results">
  The token is working, but the underlying integration may not be configured.

  * For warehouse tools (`run_sql_query`), confirm your data team has connected a warehouse to your workspace.
  * For repo tools (`read_file`, `ripgrep_search`, `create_pull_request`), confirm a code repository is connected and the connected user has access to it.
  * For catalog/lineage tools, your dbt™ project needs to have been parsed at least once in Paradime.
</Accordion>

<Accordion title="'Tool not found' or the AI client doesn't see Paradime tools">
  * Some clients cache the MCP tool list at startup — try restarting the client after adding the connector.
  * In Claude and ChatGPT, ensure Paradime is **enabled** in the connectors menu of your current chat.
  * If you've recently rotated your token, the old connector may still be cached. Remove and re-add it.
</Accordion>

<Accordion title="I'm in multiple workspaces and the agent uses the wrong one">
  Use the `switch_workspace` tool — ask the agent to switch context: *"Switch to the marketing workspace before continuing."*
</Accordion>

<Accordion title="The agent is making too many tool calls / responses are slow">
  This is usually a sign the underlying client is sending the wrong context to the model. A few things to try:

  * Be specific in your prompt — *"In the dbt catalog, find models that ref `stg_orders`"* routes more efficiently than *"find anything related to orders"*.
  * On large monorepos, prefer `search_catalog` over `ripgrep_search` for catalog-aware queries.
  * If using a smaller model, switch to a larger context model (Claude Sonnet/Opus, GPT-5) for complex multi-step tasks.
</Accordion>

### FAQ

<Accordion title="What happens when I leave my organisation?">
  When your Paradime account is deactivated, your MCP token is **revoked automatically**. Any AI client still configured with it will fail to authenticate on the next call. There are no leftover credentials to chase down.
</Accordion>

<Accordion title="Can I rotate my MCP token?">
  Yes. Generate a new token in **Settings → API keys**, replace the value in your client's connector config, then revoke the old token. Tokens can be rotated at any time without affecting the underlying workspace integrations.
</Accordion>

<Accordion title="Does the MCP token give me elevated access?">
  No. The token inherits **exactly** the permissions of your Paradime user. If you can't see the marketing workspace in Paradime, the MCP can't either. If you're a read-only user, the MCP can read but not write.
</Accordion>

<Accordion title="Are MCP requests audited?">
  Yes. All MCP tool calls are logged against your user account in Paradime, the same way warehouse queries and Bolt runs are.
</Accordion>

<Accordion title="How much does this cost?">
  The Paradime MCP Server is included with all paid Paradime plans, and free for business and read-only seats. Token consumption on the AI side (Claude, ChatGPT, etc.) is billed by your AI provider, not by Paradime.
</Accordion>

<Accordion title="Can I restrict which tools an MCP token can use?">
  You can use the configure page to set which tools are allowed, denied, and need permission before executing.
</Accordion>

### Related

* [Announcement: The Paradime MCP Server is here](https://www.paradime.io/blog/paradime-mcp-server-is-here)
* [Generating Paradime API keys](https://app.paradime.io/settings/api-keys)
* [Model Context Protocol specification](https://modelcontextprotocol.io/)

[^1]: Get this token from Paradime


## Related topics

- [Other clients](/products/dino-ai/mcp-server/other-clients.md)
- [Claude Code](/products/dino-ai/mcp-server/claude-code.md)
- [Kiro](/products/dino-ai/mcp-server/kiro.md)
- [Cursor](/products/dino-ai/mcp-server/cursor.md)
- [OpenCode](/products/dino-ai/mcp-server/opencode.md)
