LabscoMCP early access ↗
fnf-deepHeadingMCP SERVER

MCP Snowflake Reader

Read-only Snowflake access, with the write keywords blocked rather than merely discouraged.

by fnf-deepHeading ↗Relational SQL DatabasesCommunity

LABSCO SUMMARY

Two layers of read-only instead of one.

You could get the same guarantee from a Snowflake role with no write grants, and you should still do that — but roles get edited and reused, and a keyword filter in the server is a second lock that does not depend on someone else's decision. The narrowing on table names is the same instinct applied to injection. What you give up is anything that needs a temp table or a session setting, which is the honest price of the restriction.

What it is

A Snowflake client for assistants that only reads. The restriction is enforced in the server rather than left to the warehouse role: a list of SQL keywords is rejected outright, and table names are constrained to alphanumerics, underscores and dots. Connection details go in as a single JSON string on the command line.

What you get

  • Read-only query access to a Snowflake database, warehouse, schema and role you specify
  • A rejected-keyword list covering INSERT, UPDATE, DELETE, DROP, TRUNCATE, ALTER, CREATE, GRANT, REVOKE, COMMIT and ROLLBACK
  • Table names restricted to alphanumeric characters, underscores and dots
  • Docker and uvx launch paths

Requirements

Snowflake credentials passed as a --connection JSON string containing account, user, password, warehouse, database, schema and role. Run it with uvx mcp-snowflake-reader (package mcp-snowflake-reader). The connection string carries a password in your client config, so protect that file the way you would any credential store.

Setup effort

Add the configuration to your client