Labsco
MCP SERVER

Snowflake Stored Procedure Integration

by Cjaimesg

Expose the Snowflake stored procedures you choose as MCP tools — and nothing else in the account.

Relational SQL Databases
Summary
Scope is set at launch, not left to the model.

Generic SQL servers hand a model the whole account and hope the prompt holds. This inverts that: the tool list is whatever you named on the command line, so a procedure that was not nominated is not reachable at all. The other benefit is that the business logic lives in reviewed, version-controlled procedures rather than being re-derived by a model on each call. The Snowflake role you configure still bounds everything, so give it the narrowest grants that work.

What it is

A framework that turns Snowflake stored procedures into callable MCP tools. You name either the schemas or the individual procedures at launch; those become the server's tool surface, so a model calls a procedure your team already wrote and reviewed rather than composing SQL.

What you get
  • The procedures you nominate become the tools, so the logic stays where your team maintains it
  • Two ways to scope: `--schemas` exposes every stored procedure in the schemas you name, `--procedures` exposes only the fully qualified procedures you list
  • Both flags are optional and default to empty lists, so nothing is exposed until you say what to expose
  • Credentials stay in the environment rather than in the tool call
  • A quickstart folder with a step-by-step setup for a development environment
Requirements

Python 3.8 or higher and `uv`. Every Snowflake connection variable is mandatory and comes from a `.env` file you create: `SNOWFLAKE_ACCOUNT`, `SNOWFLAKE_USER`, `SNOWFLAKE_PASSWORD`, `SNOWFLAKE_ROLE`, `SNOWFLAKE_WAREHOUSE`, `SNOWFLAKE_DATABASE`, `SNOWFLAKE_SCHEMA` and `SNOWFLAKE_HOST`. The client launches `uv` against the repository directory with `main.py` and the scope flags appended.