io.github.kalehdoo/warehouse-mcp MCP Server
io.github.kalehdoo/warehouse-mcp
What is the io.github.kalehdoo/warehouse-mcp MCP server?
Production MCP server for Postgres, Oracle, Snowflake, BigQuery, Redshift, DuckDB, MotherDuck.
How to install io.github.kalehdoo/warehouse-mcp
Copy-paste configuration for popular MCP clients.
MCP_TRANSPORTSet to 'stdio' for desktop AI clients (Claude Desktop, Cursor). Defaults to 'http'.
WAREHOUSE_TYPErequiredWhich warehouse to connect to. One of: postgres, oracle, redshift, snowflake, bigquery, duckdb. (DuckDB also handles MotherDuck via DUCKDB_PATH=md:<db>.)
MCP_API_KEYSsecretComma-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_PATHDuckDB file path, ':memory:', or 'md:<database>' for MotherDuck. Required when WAREHOUSE_TYPE=duckdb.
MOTHERDUCK_TOKENsecretMotherDuck service token. Required when DUCKDB_PATH starts with 'md:'.
PG_HOSTPostgres host. Required when WAREHOUSE_TYPE=postgres. (Use REDSHIFT_HOST for Redshift.)
PG_DATABASEPostgres database name.
PG_USERPostgres user.
PG_PASSWORDsecretPostgres password.
ORACLE_USEROracle user. Required when WAREHOUSE_TYPE=oracle.
ORACLE_PASSWORDsecretOracle password.
ORACLE_CONNECT_STRINGOracle Easy Connect (e.g. host:1521/SERVICE), TNS descriptor, or alias.
SNOWFLAKE_ACCOUNTSnowflake account identifier (e.g. xy12345.us-east-1). Required when WAREHOUSE_TYPE=snowflake.
SNOWFLAKE_USERSnowflake username.
SNOWFLAKE_PRIVATE_KEY_PATHPath to PKCS8 private key (.p8). Snowflake auth is key-pair only; password auth is not supported.
BIGQUERY_PROJECTGCP project id. Required when WAREHOUSE_TYPE=bigquery.
GOOGLE_APPLICATION_CREDENTIALSPath to BigQuery service-account JSON. Omit on GKE / Cloud Run with workload identity.
GUARDRAIL_PII_MASKSet to 'on' to enable role-aware PII masking on result rows (emails, SSNs, phones, IPs, Luhn-validated CCs). Off by default.
MCP_RATE_LIMIT_RPMPer-principal token-bucket rate limit on tool invocations. 0 = disabled. Recommend 60 for production.
{
"mcpServers": {
"warehouse-mcp": {
"command": "npx",
"args": [
"-y",
"warehouse-mcp",
"start"
],
"env": {
"MCP_TRANSPORT": "<YOUR_MCP_TRANSPORT>",
"WAREHOUSE_TYPE": "<YOUR_WAREHOUSE_TYPE>",
"MCP_API_KEYS": "<YOUR_MCP_API_KEYS>",
"DUCKDB_PATH": "<YOUR_DUCKDB_PATH>",
"MOTHERDUCK_TOKEN": "<YOUR_MOTHERDUCK_TOKEN>",
"PG_HOST": "<YOUR_PG_HOST>",
"PG_DATABASE": "<YOUR_PG_DATABASE>",
"PG_USER": "<YOUR_PG_USER>",
"PG_PASSWORD": "<YOUR_PG_PASSWORD>",
"ORACLE_USER": "<YOUR_ORACLE_USER>",
"ORACLE_PASSWORD": "<YOUR_ORACLE_PASSWORD>",
"ORACLE_CONNECT_STRING": "<YOUR_ORACLE_CONNECT_STRING>",
"SNOWFLAKE_ACCOUNT": "<YOUR_SNOWFLAKE_ACCOUNT>",
"SNOWFLAKE_USER": "<YOUR_SNOWFLAKE_USER>",
"SNOWFLAKE_PRIVATE_KEY_PATH": "<YOUR_SNOWFLAKE_PRIVATE_KEY_PATH>",
"BIGQUERY_PROJECT": "<YOUR_BIGQUERY_PROJECT>",
"GOOGLE_APPLICATION_CREDENTIALS": "<YOUR_GOOGLE_APPLICATION_CREDENTIALS>",
"GUARDRAIL_PII_MASK": "<YOUR_GUARDRAIL_PII_MASK>",
"MCP_RATE_LIMIT_RPM": "<YOUR_MCP_RATE_LIMIT_RPM>"
}
}
}
}{
"mcpServers": {
"warehouse-mcp": {
"command": "npx",
"args": [
"-y",
"warehouse-mcp",
"start"
],
"env": {
"MCP_TRANSPORT": "<YOUR_MCP_TRANSPORT>",
"WAREHOUSE_TYPE": "<YOUR_WAREHOUSE_TYPE>",
"MCP_API_KEYS": "<YOUR_MCP_API_KEYS>",
"DUCKDB_PATH": "<YOUR_DUCKDB_PATH>",
"MOTHERDUCK_TOKEN": "<YOUR_MOTHERDUCK_TOKEN>",
"PG_HOST": "<YOUR_PG_HOST>",
"PG_DATABASE": "<YOUR_PG_DATABASE>",
"PG_USER": "<YOUR_PG_USER>",
"PG_PASSWORD": "<YOUR_PG_PASSWORD>",
"ORACLE_USER": "<YOUR_ORACLE_USER>",
"ORACLE_PASSWORD": "<YOUR_ORACLE_PASSWORD>",
"ORACLE_CONNECT_STRING": "<YOUR_ORACLE_CONNECT_STRING>",
"SNOWFLAKE_ACCOUNT": "<YOUR_SNOWFLAKE_ACCOUNT>",
"SNOWFLAKE_USER": "<YOUR_SNOWFLAKE_USER>",
"SNOWFLAKE_PRIVATE_KEY_PATH": "<YOUR_SNOWFLAKE_PRIVATE_KEY_PATH>",
"BIGQUERY_PROJECT": "<YOUR_BIGQUERY_PROJECT>",
"GOOGLE_APPLICATION_CREDENTIALS": "<YOUR_GOOGLE_APPLICATION_CREDENTIALS>",
"GUARDRAIL_PII_MASK": "<YOUR_GUARDRAIL_PII_MASK>",
"MCP_RATE_LIMIT_RPM": "<YOUR_MCP_RATE_LIMIT_RPM>"
}
}
}
}{
"mcpServers": {
"warehouse-mcp": {
"command": "npx",
"args": [
"-y",
"warehouse-mcp",
"start"
],
"env": {
"MCP_TRANSPORT": "<YOUR_MCP_TRANSPORT>",
"WAREHOUSE_TYPE": "<YOUR_WAREHOUSE_TYPE>",
"MCP_API_KEYS": "<YOUR_MCP_API_KEYS>",
"DUCKDB_PATH": "<YOUR_DUCKDB_PATH>",
"MOTHERDUCK_TOKEN": "<YOUR_MOTHERDUCK_TOKEN>",
"PG_HOST": "<YOUR_PG_HOST>",
"PG_DATABASE": "<YOUR_PG_DATABASE>",
"PG_USER": "<YOUR_PG_USER>",
"PG_PASSWORD": "<YOUR_PG_PASSWORD>",
"ORACLE_USER": "<YOUR_ORACLE_USER>",
"ORACLE_PASSWORD": "<YOUR_ORACLE_PASSWORD>",
"ORACLE_CONNECT_STRING": "<YOUR_ORACLE_CONNECT_STRING>",
"SNOWFLAKE_ACCOUNT": "<YOUR_SNOWFLAKE_ACCOUNT>",
"SNOWFLAKE_USER": "<YOUR_SNOWFLAKE_USER>",
"SNOWFLAKE_PRIVATE_KEY_PATH": "<YOUR_SNOWFLAKE_PRIVATE_KEY_PATH>",
"BIGQUERY_PROJECT": "<YOUR_BIGQUERY_PROJECT>",
"GOOGLE_APPLICATION_CREDENTIALS": "<YOUR_GOOGLE_APPLICATION_CREDENTIALS>",
"GUARDRAIL_PII_MASK": "<YOUR_GUARDRAIL_PII_MASK>",
"MCP_RATE_LIMIT_RPM": "<YOUR_MCP_RATE_LIMIT_RPM>"
}
}
}
}{
"servers": {
"warehouse-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"warehouse-mcp",
"start"
],
"env": {
"MCP_TRANSPORT": "<YOUR_MCP_TRANSPORT>",
"WAREHOUSE_TYPE": "<YOUR_WAREHOUSE_TYPE>",
"MCP_API_KEYS": "<YOUR_MCP_API_KEYS>",
"DUCKDB_PATH": "<YOUR_DUCKDB_PATH>",
"MOTHERDUCK_TOKEN": "<YOUR_MOTHERDUCK_TOKEN>",
"PG_HOST": "<YOUR_PG_HOST>",
"PG_DATABASE": "<YOUR_PG_DATABASE>",
"PG_USER": "<YOUR_PG_USER>",
"PG_PASSWORD": "<YOUR_PG_PASSWORD>",
"ORACLE_USER": "<YOUR_ORACLE_USER>",
"ORACLE_PASSWORD": "<YOUR_ORACLE_PASSWORD>",
"ORACLE_CONNECT_STRING": "<YOUR_ORACLE_CONNECT_STRING>",
"SNOWFLAKE_ACCOUNT": "<YOUR_SNOWFLAKE_ACCOUNT>",
"SNOWFLAKE_USER": "<YOUR_SNOWFLAKE_USER>",
"SNOWFLAKE_PRIVATE_KEY_PATH": "<YOUR_SNOWFLAKE_PRIVATE_KEY_PATH>",
"BIGQUERY_PROJECT": "<YOUR_BIGQUERY_PROJECT>",
"GOOGLE_APPLICATION_CREDENTIALS": "<YOUR_GOOGLE_APPLICATION_CREDENTIALS>",
"GUARDRAIL_PII_MASK": "<YOUR_GUARDRAIL_PII_MASK>",
"MCP_RATE_LIMIT_RPM": "<YOUR_MCP_RATE_LIMIT_RPM>"
}
}
}
}claude mcp add warehouse-mcp --env MCP_TRANSPORT=<YOUR_MCP_TRANSPORT> --env WAREHOUSE_TYPE=<YOUR_WAREHOUSE_TYPE> --env MCP_API_KEYS=<YOUR_MCP_API_KEYS> --env DUCKDB_PATH=<YOUR_DUCKDB_PATH> --env MOTHERDUCK_TOKEN=<YOUR_MOTHERDUCK_TOKEN> --env PG_HOST=<YOUR_PG_HOST> --env PG_DATABASE=<YOUR_PG_DATABASE> --env PG_USER=<YOUR_PG_USER> --env PG_PASSWORD=<YOUR_PG_PASSWORD> --env ORACLE_USER=<YOUR_ORACLE_USER> --env ORACLE_PASSWORD=<YOUR_ORACLE_PASSWORD> --env ORACLE_CONNECT_STRING=<YOUR_ORACLE_CONNECT_STRING> --env SNOWFLAKE_ACCOUNT=<YOUR_SNOWFLAKE_ACCOUNT> --env SNOWFLAKE_USER=<YOUR_SNOWFLAKE_USER> --env SNOWFLAKE_PRIVATE_KEY_PATH=<YOUR_SNOWFLAKE_PRIVATE_KEY_PATH> --env BIGQUERY_PROJECT=<YOUR_BIGQUERY_PROJECT> --env GOOGLE_APPLICATION_CREDENTIALS=<YOUR_GOOGLE_APPLICATION_CREDENTIALS> --env GUARDRAIL_PII_MASK=<YOUR_GUARDRAIL_PII_MASK> --env MCP_RATE_LIMIT_RPM=<YOUR_MCP_RATE_LIMIT_RPM> -- npx -y warehouse-mcp startRelated MCP servers
Scrapling MCP Server
Give your AI agent stealth web scraping with Cloudflare bypass and CSS selection, powered by Scrapling.
Chrome DevTools MCP
Give your AI coding agent full control of a live Chrome browser for automation, debugging, and performance analysis.
com.puter/mcp-server
Let AI agents manage your Puter files, websites, and serverless workers over MCP.
Browser automation for AI agents via MCP, powering ByteDance's Agent TARS hybrid GUI/DOM browser control.
Run arbitrary shell commands from an MCP-connected AI agent.
Filesystem access MCP server from ByteDance's UI-TARS/Agent TARS ecosystem.