> For the complete documentation index, see [llms.txt](https://docs.natoma.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.natoma.ai/apps/snowflake.md).

# Snowflake

**Type:** Official

**Source Type:** Remote URL

**Source:** [Snowflake Cortex Agents MCP](https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-agents-mcp)

**Description:** Snowflake's Cortex Agents MCP server gives AI assistants governed access to data in your Snowflake account — Cortex Search for unstructured retrieval, Cortex Analyst for natural-language-to-SQL over semantic views, direct SQL execution, and custom UDFs/stored procedures. You define an **MCP Server** object in Snowflake, and Snowflake hosts the endpoint on your account with access enforced by Snowflake RBAC.

***

## Setup

### Step 1: Set up the MCP server in Snowflake

Follow Snowflake's [Cortex Agents MCP guide](https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-agents-mcp) to create the MCP Server object and a custom OAuth 2.0 client. When you create the OAuth security integration, use Natoma's callback URL as the redirect URI:

```
https://api.nova.cortex.snowflake.app/mcp/server/callback
```

{% hint style="warning" %}
The redirect URI must match exactly, or Snowflake will reject the OAuth flow.
{% endhint %}

From that setup, collect the **database name**, **schema name**, **MCP server name**, **Client ID**, and **Client Secret**.

### Step 2: Add Snowflake in Natoma

In Natoma, an admin adds **Snowflake** under **Apps** and enters:

| Field                            | Example                             |
| -------------------------------- | ----------------------------------- |
| Snowflake account URL            | `example-id.snowflakecomputing.com` |
| Snowflake database name          | `DATABASE_NAME`                     |
| Snowflake schema name            | `SCHEMA_NAME`                       |
| Name of the Snowflake MCP server | `MCP_SERVER_NAME`                   |
| Client ID                        | `client_id`                         |
| Client Secret                    | *(from your OAuth client)*          |

### Step 3: Authorize your connection

When prompted while creating the connection in Natoma, click **Authorize** and sign in with the Snowflake user whose default role holds the privileges for the tools you exposed.

{% hint style="info" %}
MCP sessions run under the user's **default role only** — secondary roles are not applied. Make sure the default role has exactly the privileges you want available, and a default warehouse is set.
{% endhint %}
