Warehouse MCP Server

Production MCP server for Postgres, Oracle, Snowflake, BigQuery, Redshift, DuckDB, MotherDuck.

Remote serverstreamable-http

What is the Warehouse MCP server?

Warehouse MCP server exists for a simple reason — assistants are far more useful when they can act on Warehouse directly instead of describing what you should do. Production MCP server for Postgres, Oracle, Snowflake, BigQuery, Redshift, DuckDB, MotherDuck.

What you get

Production MCP (Model Context Protocol) server for your data warehouse. Read-only enforcement, five-tier role-based access, optional warehouse-role impersonation (for native RLS / CLS), JSONL audit log, optional output PII masking, optional semantic-metadata layer (glossary + table docs) with per-session toggle. Self-host the Docker image, install via npx, or wait for the upcoming managed cloud variant.

What the assistant can call

Once Warehouse is connected, these are the calls the assistant has available:

  • query — Execute a SELECT (validator-enforced read-only, dialect-aware)
  • find_columns — Search column names across the warehouse with a LIKE pattern
  • get_foreign_keys — Discover declared FK relationships for safe joins
  • get_view_definition — Read the SQL body of a view (where business logic lives)
  • time_series — Bucket by hour/day/week/month/quarter/year — dialect-correct everywhere
  • search_value — Find a literal across a table's text columns
  • glossary_lookup — Read business-glossary terms from the semantic layer (in-memory, no warehouse I/O)
  • schema_lookup — Read schema-level docs — purpose, owner, refresh, table list
  • table_lookup — Read full semantic doc for one table — description + column metadata

Setting it up

Being a remote server, there is no local install. You register the endpoint with your client, authorise it once, and the tools appear.

Configuration and credentials

You will need 3 environment variables: SNOWFLAKE_PRIVATE_KEY_PATH, DUCKDB_PATH, MOTHERDUCK_TOKEN. The server will not start without them, which is usually why the tools fail to appear on a first run. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.

Choosing this one

Plenty of database access servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Warehouse's toolset — query, find_columns, get_foreign_keys and 6 more — is a fair guide to whether it matches your workflow. It is maintained by kalehdoo; worth a glance at recent repository activity before you build anything load-bearing on it.

We check each listing at SyncDev against the project's documentation before it goes live — if something here drifts out of date, it is a bug worth reporting.

Before you rely on it

  • Your data travels to the provider's service, so the usual questions apply about what you send and what they retain.
  • With 9 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch Warehouse.
  • Missing credentials fail quietly in some clients — if no tools show up, check the environment block first.
  • MCP clients confirm each tool call by default. Leave that on until you have watched what the warehouse mcp server does with a few real requests.

Available tools

ToolWhat it does
queryExecute a SELECT (validator-enforced read-only, dialect-aware)
find_columnsSearch column names across the warehouse with a LIKE pattern
get_foreign_keysDiscover declared FK relationships for safe joins
get_view_definitionRead the SQL body of a view (where business logic lives)
time_seriesBucket by hour/day/week/month/quarter/year — dialect-correct everywhere
search_valueFind a literal across a table's text columns
glossary_lookupRead business-glossary terms from the semantic layer (in-memory, no warehouse I/O)
schema_lookupRead schema-level docs — purpose, owner, refresh, table list
table_lookupRead full semantic doc for one table — description + column metadata

How to install the Warehouse MCP server

{
  "mcpServers": {
    "warehouse": {
      "command": "npx",
      "args": ["-y", "warehouse-mcp"],
      "env": {
        "SNOWFLAKE_PRIVATE_KEY_PATH": "your-value",
        "DUCKDB_PATH": "your-value",
        "MOTHERDUCK_TOKEN": "your-value"
      }
    }
  }
}

Add to claude_desktop_config.json, then restart Claude Desktop.

Configuration

VariableDescriptionRequired
SNOWFLAKE_PRIVATE_KEY_PATHCredential the server authenticates with.Yes
DUCKDB_PATHFilesystem location the server is allowed to use.Optional
MOTHERDUCK_TOKENCredential the server authenticates with.Yes

Example prompts to try

  • Use Warehouse to query.
  • Use Warehouse to find columns.
  • Use Warehouse to get foreign keys.

Frequently asked questions

It connects Warehouse to MCP-compatible AI assistants such as Claude and Cursor, exposing 9 tools (query, find_columns, get_foreign_keys, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Warehouse directly.