Skip to main content
Snowflake’s own managed MCP server gives your agents governed access to data and AI capabilities that already live in your Snowflake account, without you having to stand up or maintain any separate infrastructure. It’s built and maintained by Snowflake, so it stays current as new Cortex AI capabilities ship. Snowflake is a catalogue server marked Available, so it shows up automatically for organizations in Default Mode. In Custom Mode, an admin needs to approve it on the Server Management page before it can be added to a Gateway or Deployment.
Of all the MCP servers Airia supports, Snowflake’s is consistently the hardest to get running. That’s not because of anything on Airia’s end. Creating the MCP server object in Snowflake itself has a lot of moving parts.The steps below are not the only way to create one, and following them will not produce a server tailored to your organization’s data. They walk through a configuration known to work end to end, so if you’re stuck setting up your own server, try these steps exactly to confirm you can connect to the demo server first.If even that fails, it’s almost always one of two things:
  • Your account type or role doesn’t have the entitlements described in Prerequisites
  • Your account has a network policy whose allowlist doesn’t include Airia’s egress IPs (see Troubleshooting)
Your Snowflake account team can help confirm and resolve either one.

What It Provides

An admin configures which of the following tool types are exposed when they create the MCP server object in Snowflake (up to 50 tools per server):

Prerequisites

  • A paid Snowflake account. Free and trial accounts don’t have the entitlements needed to create or connect to MCP server objects.
  • A Snowflake user with enough privileges to create a warehouse, database, schema, role, and the MCP server object itself (typically ACCOUNTADMIN, or a role explicitly granted those privileges).

Setting Up the MCP Server in Snowflake

If your organization already has an MCP server object configured in Snowflake, skip to Connecting to Airia. Otherwise, a Snowflake admin needs to create one first.
1

Create a warehouse, database, and schema

2

Create a role and grant it access

Also grant this role whatever else your tools need to reach, for example USAGE on a Cortex Search Service or SELECT on the tables a SQL tool should query.
3

Assign the role to the connecting user

DEFAULT_ROLE and DEFAULT_WAREHOUSE must both be set on the connecting user. Sessions fail to initialize without them, and this is required even if the user has other roles or warehouses available. Secondary roles aren’t supported.
4

Create the MCP server object

This example adds a single SQL tool. Add more entries under tools for any of the tool types above, then grant USAGE on the finished server to every role that should be able to use it.

Connecting to Airia

Snowflake supports two authentication options. Both give an agent the same Snowflake access, so pick whichever fits how your organization wants to manage credentials. See Tenant vs. Personal Level App Credentials if you’re not sure which one you need.

Option A: Programmatic Access Token

1

Generate a token

Run the following as, or on behalf of, the user that should connect:
2

Copy the token

Copy the token value from the result. Snowflake only shows it once.
3

Add it to Airia

Paste the token in as your API key credential when connecting Snowflake to a Gateway or Deployment.

Option B: OAuth Integration

Creating an OAuth integration requires ACCOUNTADMIN (or an equivalent role).
1

Create a security integration

Don’t skip PRE_AUTHORIZED_ROLES_LIST. Leaving it out can cause the consent screen to fail, or a session to silently pick up the wrong role. Every role listed here also needs USAGE on the MCP server object.
2

Retrieve the client credentials

Copy the Client ID and Client Secret from the result.
3

Add them to Airia

Enter the Client ID and Client Secret when registering the Snowflake OAuth app in Airia. After that, each person clicks Connect and signs in with their own Snowflake user.

Connection Details

Whichever option you use, adding Snowflake to a Gateway or Deployment asks for four fields: If you don’t already know your account URL, run:
The account URL must use hyphens, not underscores, even if your organization or account name contains one. The query above handles this conversion for you; entering underscores directly causes the connection to fail.

Limitations

  • DEFAULT_ROLE and DEFAULT_WAREHOUSE must be set on the connecting user. This applies to both authentication options, but OAuth sessions fail outright without them.
  • No support for MCP resources, prompts, roots, notifications, or sampling.
  • Responses aren’t streamed.
  • A single server can expose at most 50 tools.
  • SQL and custom tool responses are capped at 250 KB. Cortex Agent responses include every intermediate step and can be considerably larger.

Troubleshooting

Confirm the Snowflake account is on a paid plan. Free and trial accounts can’t create or connect to MCP server objects, and this produces the same rejection as a misconfigured connection.
If your Snowflake account has a network policy in place (check with SHOW NETWORK POLICIES IN ACCOUNT), Airia’s egress IPs need to be added to the allowed list. Contact Airia support for the current IP range. This applies to both authentication options, but is easy to miss when OAuth sign-in itself appears to succeed.
This almost always means the Client ID or Client Secret saved in Airia no longer matches your security integration, for example after it was recreated or the secret was rotated. Re-run SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('<integration_name>') in Snowflake and update the credentials in Airia.
Snowflake enforces access control at both the server and tool level, so a successful connection doesn’t automatically grant access to everything a tool touches. Check that the connected role has been separately granted whatever each tool needs, such as USAGE on a Cortex Search Service or SELECT on the underlying tables.

Learn More

Tenant vs. Personal Level App Credentials

Decide whether your Snowflake credential is shared or personal

Supported Credential Types

See how each authentication method works across servers

Server Management

Approve which MCP servers your organization can use

Gateway/Deployment Creation

Add Snowflake to the Gateway or Deployment you’re building