Production MCP server for Postgres, Oracle, Snowflake, BigQuery, Redshift, DuckDB, MotherDuck.
Connect Runs on your machine
claude mcp add warehouse-mcp -e MCP_TRANSPORT=<MCP_TRANSPORT> -e WAREHOUSE_TYPE=<WAREHOUSE_TYPE> -e MCP_API_KEYS=<MCP_API_KEYS> -e DUCKDB_PATH=<DUCKDB_PATH> -e MOTHERDUCK_TOKEN=<MOTHERDUCK_TOKEN> -e PG_HOST=<PG_HOST> -e PG_DATABASE=<PG_DATABASE> -e PG_USER=<PG_USER> -e PG_PASSWORD=<PG_PASSWORD> -e ORACLE_USER=<ORACLE_USER> -e ORACLE_PASSWORD=<ORACLE_PASSWORD> -e ORACLE_CONNECT_STRING=<ORACLE_CONNECT_STRING> -e SNOWFLAKE_ACCOUNT=<SNOWFLAKE_ACCOUNT> -e SNOWFLAKE_USER=<SNOWFLAKE_USER> -e SNOWFLAKE_PRIVATE_KEY_PATH=<SNOWFLAKE_PRIVATE_KEY_PATH> -e BIGQUERY_PROJECT=<BIGQUERY_PROJECT> -e GOOGLE_APPLICATION_CREDENTIALS=<GOOGLE_APPLICATION_CREDENTIALS> -e GUARDRAIL_PII_MASK=<GUARDRAIL_PII_MASK> -e MCP_RATE_LIMIT_RPM=<MCP_RATE_LIMIT_RPM> -- npx -y [email protected]
{
"mcpServers": {
"warehouse-mcp": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"WAREHOUSE_TYPE": "<WAREHOUSE_TYPE>",
"MCP_API_KEYS": "<MCP_API_KEYS>",
"DUCKDB_PATH": "<DUCKDB_PATH>",
"MOTHERDUCK_TOKEN": "<MOTHERDUCK_TOKEN>",
"PG_HOST": "<PG_HOST>",
"PG_DATABASE": "<PG_DATABASE>",
"PG_USER": "<PG_USER>",
"PG_PASSWORD": "<PG_PASSWORD>",
"ORACLE_USER": "<ORACLE_USER>",
"ORACLE_PASSWORD": "<ORACLE_PASSWORD>",
"ORACLE_CONNECT_STRING": "<ORACLE_CONNECT_STRING>",
"SNOWFLAKE_ACCOUNT": "<SNOWFLAKE_ACCOUNT>",
"SNOWFLAKE_USER": "<SNOWFLAKE_USER>",
"SNOWFLAKE_PRIVATE_KEY_PATH": "<SNOWFLAKE_PRIVATE_KEY_PATH>",
"BIGQUERY_PROJECT": "<BIGQUERY_PROJECT>",
"GOOGLE_APPLICATION_CREDENTIALS": "<GOOGLE_APPLICATION_CREDENTIALS>",
"GUARDRAIL_PII_MASK": "<GUARDRAIL_PII_MASK>",
"MCP_RATE_LIMIT_RPM": "<MCP_RATE_LIMIT_RPM>"
}
}
}
}
{
"mcpServers": {
"warehouse-mcp": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"WAREHOUSE_TYPE": "<WAREHOUSE_TYPE>",
"MCP_API_KEYS": "<MCP_API_KEYS>",
"DUCKDB_PATH": "<DUCKDB_PATH>",
"MOTHERDUCK_TOKEN": "<MOTHERDUCK_TOKEN>",
"PG_HOST": "<PG_HOST>",
"PG_DATABASE": "<PG_DATABASE>",
"PG_USER": "<PG_USER>",
"PG_PASSWORD": "<PG_PASSWORD>",
"ORACLE_USER": "<ORACLE_USER>",
"ORACLE_PASSWORD": "<ORACLE_PASSWORD>",
"ORACLE_CONNECT_STRING": "<ORACLE_CONNECT_STRING>",
"SNOWFLAKE_ACCOUNT": "<SNOWFLAKE_ACCOUNT>",
"SNOWFLAKE_USER": "<SNOWFLAKE_USER>",
"SNOWFLAKE_PRIVATE_KEY_PATH": "<SNOWFLAKE_PRIVATE_KEY_PATH>",
"BIGQUERY_PROJECT": "<BIGQUERY_PROJECT>",
"GOOGLE_APPLICATION_CREDENTIALS": "<GOOGLE_APPLICATION_CREDENTIALS>",
"GUARDRAIL_PII_MASK": "<GUARDRAIL_PII_MASK>",
"MCP_RATE_LIMIT_RPM": "<MCP_RATE_LIMIT_RPM>"
}
}
}
}
{
"servers": {
"warehouse-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"WAREHOUSE_TYPE": "<WAREHOUSE_TYPE>",
"MCP_API_KEYS": "<MCP_API_KEYS>",
"DUCKDB_PATH": "<DUCKDB_PATH>",
"MOTHERDUCK_TOKEN": "<MOTHERDUCK_TOKEN>",
"PG_HOST": "<PG_HOST>",
"PG_DATABASE": "<PG_DATABASE>",
"PG_USER": "<PG_USER>",
"PG_PASSWORD": "<PG_PASSWORD>",
"ORACLE_USER": "<ORACLE_USER>",
"ORACLE_PASSWORD": "<ORACLE_PASSWORD>",
"ORACLE_CONNECT_STRING": "<ORACLE_CONNECT_STRING>",
"SNOWFLAKE_ACCOUNT": "<SNOWFLAKE_ACCOUNT>",
"SNOWFLAKE_USER": "<SNOWFLAKE_USER>",
"SNOWFLAKE_PRIVATE_KEY_PATH": "<SNOWFLAKE_PRIVATE_KEY_PATH>",
"BIGQUERY_PROJECT": "<BIGQUERY_PROJECT>",
"GOOGLE_APPLICATION_CREDENTIALS": "<GOOGLE_APPLICATION_CREDENTIALS>",
"GUARDRAIL_PII_MASK": "<GUARDRAIL_PII_MASK>",
"MCP_RATE_LIMIT_RPM": "<MCP_RATE_LIMIT_RPM>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
MCP_TRANSPORTOptional | Set to 'stdio' for desktop AI clients (Claude Desktop, Cursor). Defaults to 'http'. |
WAREHOUSE_TYPERequired | Which warehouse to connect to. One of: postgres, oracle, redshift, snowflake, bigquery, duckdb. (DuckDB also handles MotherDuck via DUCKDB_PATH=md:<db>.) |
MCP_API_KEYSOptional, secret | Comma-separated bearer keys with role and optional warehouse-role impersonation: 'key1:reader,key2:admin', 'key3:reader:set_role=alice'. Leave empty for stdio (OS process boundary is the trust boundary). Required for HTTP. |
DUCKDB_PATHOptional | DuckDB file path, ':memory:', or 'md:<database>' for MotherDuck. Required when WAREHOUSE_TYPE=duckdb. |
MOTHERDUCK_TOKENOptional, secret | MotherDuck service token. Required when DUCKDB_PATH starts with 'md:'. |
PG_HOSTOptional | Postgres host. Required when WAREHOUSE_TYPE=postgres. (Use REDSHIFT_HOST for Redshift.) |
PG_DATABASEOptional | Postgres database name. |
PG_USEROptional | Postgres user. |
PG_PASSWORDOptional, secret | Postgres password. |
ORACLE_USEROptional | Oracle user. Required when WAREHOUSE_TYPE=oracle. |
ORACLE_PASSWORDOptional, secret | Oracle password. |
ORACLE_CONNECT_STRINGOptional | Oracle Easy Connect (e.g. host:1521/SERVICE), TNS descriptor, or alias. |
SNOWFLAKE_ACCOUNTOptional | Snowflake account identifier (e.g. xy12345.us-east-1). Required when WAREHOUSE_TYPE=snowflake. |
SNOWFLAKE_USEROptional | Snowflake username. |
SNOWFLAKE_PRIVATE_KEY_PATHOptional | Path to PKCS8 private key (.p8). Snowflake auth is key-pair only; password auth is not supported. |
BIGQUERY_PROJECTOptional | GCP project id. Required when WAREHOUSE_TYPE=bigquery. |
GOOGLE_APPLICATION_CREDENTIALSOptional | Path to BigQuery service-account JSON. Omit on GKE / Cloud Run with workload identity. |
GUARDRAIL_PII_MASKOptional | Set to 'on' to enable role-aware PII masking on result rows (emails, SSNs, phones, IPs, Luhn-validated CCs). Off by default. |
MCP_RATE_LIMIT_RPMOptional | Per-principal token-bucket rate limit on tool invocations. 0 = disabled. Recommend 60 for production. |
Details
| Package | [email protected] (NPM, stdio) |
| First published | 6 May 2026 |
| Last updated | 6 May 2026 |
| Registry name | io.github.kalehdoo/warehouse-mcp |
More databases servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
