Skip to main content

Setup Snowflake OAuth for MCP for Claude Snowflake Connector

Snowflake OAuth for MCP lets you connect the Claude Snowflake Connector using secure, token-based authentication. By creating a custom OAuth client in Snowflake and linking it to MCP, you can avoid storing passwords and keep access tied to Snowflake’s built-in roles and permissions.

View article: Install and Set Up Snowflake MCP with Claude

Snowflake Configuration

This guide walks through viewing your OAuth integrations, creating the client, and completing the connection so Claude can authenticate cleanly with Snowflake.

SHOW INTEGRATIONS LIKE '%OAUTH%';

Add an Oauth Integration for Claude

USE ROLE SECURITYADMIN;

CREATE OR REPLACE SECURITY INTEGRATION CLAUDE_OAUTH_INTEGRATION
  TYPE                  = OAUTH
  OAUTH_CLIENT          = CUSTOM
  OAUTH_CLIENT_TYPE     = 'CONFIDENTIAL'
  ENABLED               = TRUE
  OAUTH_REDIRECT_URI    = 'https://claude.ai/api/mcp/auth_callback'
  OAUTH_ISSUE_REFRESH_TOKENS     = TRUE
  OAUTH_REFRESH_TOKEN_VALIDITY   = 7776000;  -- 90 days, pick what you want
;

Limiting access to MCP Role

Using Snowflake MCP is absolutely not something you should roll out into production. You should carefully test, evaluate, and monitor. We create a role specifically for use with Claude so we can easily isolate usage, review queries, and limit access to a select few users.

-- (optional) pre-authorize a role
ALTER SECURITY INTEGRATION CLAUDE_OAUTH_INTEGRATION
  SET PRE_AUTHORIZED_ROLES_LIST = ('CLAUDE');

Acquire the Oauth token and secret

SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('CLAUDE_OAUTH_INTEGRATION');

Snowflake OAuth for MCP Troubleshooting

As of Nov 2025, this OAuth integration used with Claude does not work becuase of a malformed scope.