<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/bridge-gemini-enterprise-and-snowflake-with-google-adk-zhacrz4jb" -->

---
title: Bridge Gemini Enterprise and Snowflake with Google ADK
description: This guide shows how to connect Google Cloud's Gemini Enterprise to Snowflake using the Model Context Protocol and the Google Agent Development Kit. An ADK...
canonical: https://daily.dev/posts/bridge-gemini-enterprise-and-snowflake-with-google-adk-zhacrz4jb
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Bridge Gemini Enterprise and Snowflake with Google ADK | daily.dev
og:description: This guide shows how to connect Google Cloud's Gemini Enterprise to Snowflake using the Model Context Protocol and the Google Agent Development Kit. An ADK...
og:url: https://daily.dev/posts/bridge-gemini-enterprise-and-snowflake-with-google-adk-zhacrz4jb
og:image: https://api.daily.dev/og/posts/ZhAcrz4JB.png
og:image:alt: Bridge Gemini Enterprise and Snowflake with Google ADK
og:image:width: 1200
og:image:height: 630
og:locale: en
---

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

# Bridge Gemini Enterprise and Snowflake with Google ADK

**[Google Cloud](https://daily.dev/sources/gcp)** · 12 min read · 0 upvotes · 0 comments

## Summary

This guide shows how to connect Google Cloud's Gemini Enterprise to Snowflake using the Model Context Protocol and the Google Agent Development Kit. An ADK agent passes natural language questions to a Snowflake MCP server, which invokes a Cortex Agent backed by a Cortex Analyst semantic view to generate and execute SQL. Execution happens inside Snowflake's governed boundary using the user's OAuth session and role privileges, avoiding a broad generic service account. The setup covers creating an OAuth security integration with a 90-day token validity, granting least-privilege roles, provisioning the MCP server, writing the ADK agent with gemini-2.5-flash, and registering it in Gemini Enterprise.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://cloud.google.com/blog/products/data-analytics/bridge-gemini-enterprise-and-snowflake-with-google-adk>

## Questions this post answers

### How do I connect Gemini Enterprise to Snowflake data securely with user-level permissions?

Use the Model Context Protocol together with the Google Agent Development Kit to bridge them. An ADK agent sends natural language questions to a Snowflake MCP server exposing a Cortex Agent (via CORTEX_AGENT_RUN), which translates the question into SQL and executes it inside Snowflake using the authenticated user's OAuth session and role privileges, keeping execution inside Snowflake's governed boundary.

_daily.dev surfaces practical guides like this for engineers wiring AI agents into governed data warehouses._

### Why is my Snowflake OAuth-connected agent failing to query with the correct role?

Snowflake OAuth tokens bind to the user's DEFAULT_ROLE and DEFAULT_WAREHOUSE at the exact moment of authorization. If a user authorizes the connection before those defaults are set correctly, the session locks to whatever role was active then, and queries fail if that role lacks the needed privileges. Set DEFAULT_ROLE and DEFAULT_WAREHOUSE before authorizing in Gemini Enterprise.

_Developers debugging OAuth role-binding quirks can find setup walkthroughs like this on daily.dev._

### What Google ADK and library versions are needed to build a Snowflake MCP agent in Python?

A working setup uses google-adk[mcp]==2.3.0, google-genai==2.10.0, pydantic-settings==2.14.2, and google-cloud-aiplatform[agent_engines]>=1.50.0, with the agent built on the gemini-2.5-flash model using LlmAgent and a McpToolset pointed at the Snowflake MCP server's StreamableHTTP endpoint.

_Teams pinning exact dependency versions for agent deployments can track changes like this via daily.dev._

## Similar posts on daily.dev

- [Using the fully managed remote BigQuery MCP server to build data AI agents](https://daily.dev/posts/using-the-fully-managed-remote-bigquery-mcp-server-to-build-data-ai-agents-roy5w8zna) · Google Cloud · 0 upvotes · 0 comments
- [Snowflake adds Google Gemini support](https://daily.dev/posts/snowflake-adds-google-gemini-support-0cxkgm4ev) · The Register · 0 upvotes · 0 comments
- [Integrating Microsoft Copilot Studio Agents with Snowflake Cortex Using MCP](https://daily.dev/posts/integrating-microsoft-copilot-studio-agents-with-snowflake-cortex-using-mcp-rrxiy9dxp) · Snowflake Community · 0 upvotes · 0 comments
- [Connecting Looker to Gemini Enterprise with MCP Toolbox and ADK](https://daily.dev/posts/connecting-looker-to-gemini-enterprise-with-mcp-toolbox-and-adk-22zvct4gk) · Google Cloud · 1 upvotes · 0 comments

---

Tags: [#mcp](https://daily.dev/tags/mcp), [#snowflake](https://daily.dev/tags/snowflake), [#oauth](https://daily.dev/tags/oauth)

[View this post on daily.dev](https://daily.dev/posts/bridge-gemini-enterprise-and-snowflake-with-google-adk-zhacrz4jb)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Bridge Gemini Enterprise and Snowflake with Google ADK","url":"https://daily.dev/posts/bridge-gemini-enterprise-and-snowflake-with-google-adk-zhacrz4jb","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/bridge-gemini-enterprise-and-snowflake-with-google-adk-zhacrz4jb"},"datePublished":"2026-10-27T16:10:47.245Z","dateModified":"2026-10-27T16:13:04.062Z","description":"This guide shows how to connect Google Cloud's Gemini Enterprise to Snowflake using the Model Context Protocol and the Google Agent Development Kit. An ADK...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/9df795f90d3290a29c3b5ccad1c3e312?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/9df795f90d3290a29c3b5ccad1c3e312?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Google Cloud","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Google Cloud","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/gcp","url":"https://daily.dev/sources/gcp"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/bridge-gemini-enterprise-and-snowflake-with-google-adk-zhacrz4jb","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"mcp,snowflake,oauth","timeRequired":"PT12M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Google Cloud","item":"https://daily.dev/sources/gcp"},{"@type":"ListItem","position":3,"name":"Bridge Gemini Enterprise and Snowflake with Google ADK"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/bridge-gemini-enterprise-and-snowflake-with-google-adk-zhacrz4jb#faq","mainEntity":[{"@type":"Question","name":"How do I connect Gemini Enterprise to Snowflake data securely with user-level permissions?","acceptedAnswer":{"@type":"Answer","text":"Use the Model Context Protocol together with the Google Agent Development Kit to bridge them. An ADK agent sends natural language questions to a Snowflake MCP server exposing a Cortex Agent (via CORTEX_AGENT_RUN), which translates the question into SQL and executes it inside Snowflake using the authenticated user's OAuth session and role privileges, keeping execution inside Snowflake's governed boundary. daily.dev surfaces practical guides like this for engineers wiring AI agents into governed data warehouses."}},{"@type":"Question","name":"Why is my Snowflake OAuth-connected agent failing to query with the correct role?","acceptedAnswer":{"@type":"Answer","text":"Snowflake OAuth tokens bind to the user's DEFAULT_ROLE and DEFAULT_WAREHOUSE at the exact moment of authorization. If a user authorizes the connection before those defaults are set correctly, the session locks to whatever role was active then, and queries fail if that role lacks the needed privileges. Set DEFAULT_ROLE and DEFAULT_WAREHOUSE before authorizing in Gemini Enterprise. Developers debugging OAuth role-binding quirks can find setup walkthroughs like this on daily.dev."}},{"@type":"Question","name":"What Google ADK and library versions are needed to build a Snowflake MCP agent in Python?","acceptedAnswer":{"@type":"Answer","text":"A working setup uses google-adk[mcp]==2.3.0, google-genai==2.10.0, pydantic-settings==2.14.2, and google-cloud-aiplatform[agent_engines]\u003e=1.50.0, with the agent built on the gemini-2.5-flash model using LlmAgent and a McpToolset pointed at the Snowflake MCP server's StreamableHTTP endpoint. Teams pinning exact dependency versions for agent deployments can track changes like this via daily.dev."}}]}
```

