PluginBench
MCP Server

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.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • MCP_TRANSPORT

    Set to 'stdio' for desktop AI clients (Claude Desktop, Cursor). Defaults to 'http'.

  • WAREHOUSE_TYPE
    required

    Which warehouse to connect to. One of: postgres, oracle, redshift, snowflake, bigquery, duckdb. (DuckDB also handles MotherDuck via DUCKDB_PATH=md:<db>.)

  • MCP_API_KEYS
    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_PATH

    DuckDB file path, ':memory:', or 'md:<database>' for MotherDuck. Required when WAREHOUSE_TYPE=duckdb.

  • MOTHERDUCK_TOKEN
    secret

    MotherDuck service token. Required when DUCKDB_PATH starts with 'md:'.

  • PG_HOST

    Postgres host. Required when WAREHOUSE_TYPE=postgres. (Use REDSHIFT_HOST for Redshift.)

  • PG_DATABASE

    Postgres database name.

  • PG_USER

    Postgres user.

  • PG_PASSWORD
    secret

    Postgres password.

  • ORACLE_USER

    Oracle user. Required when WAREHOUSE_TYPE=oracle.

  • ORACLE_PASSWORD
    secret

    Oracle password.

  • ORACLE_CONNECT_STRING

    Oracle Easy Connect (e.g. host:1521/SERVICE), TNS descriptor, or alias.

  • SNOWFLAKE_ACCOUNT

    Snowflake account identifier (e.g. xy12345.us-east-1). Required when WAREHOUSE_TYPE=snowflake.

  • SNOWFLAKE_USER

    Snowflake username.

  • SNOWFLAKE_PRIVATE_KEY_PATH

    Path to PKCS8 private key (.p8). Snowflake auth is key-pair only; password auth is not supported.

  • BIGQUERY_PROJECT

    GCP project id. Required when WAREHOUSE_TYPE=bigquery.

  • GOOGLE_APPLICATION_CREDENTIALS

    Path to BigQuery service-account JSON. Omit on GKE / Cloud Run with workload identity.

  • GUARDRAIL_PII_MASK

    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_RPM

    Per-principal token-bucket rate limit on tool invocations. 0 = disabled. Recommend 60 for production.

Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "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>"
      }
    }
  }
}
Cursor
~/.cursor/mcp.json
{
  "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>"
      }
    }
  }
}
Windsurf
~/.codeium/windsurf/mcp_config.json
{
  "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>"
      }
    }
  }
}
VS Code
.vscode/mcp.json
{
  "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 Code
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 start

Related MCP servers

Give your AI agent stealth web scraping with Cloudflare bypass and CSS selection, powered by Scrapling.

67k
Python
BSD-3-Clause
View repository →

Give your AI coding agent full control of a live Chrome browser for automation, debugging, and performance analysis.

45k
TypeScript
Apache-2.0
View repository →

Let AI agents manage your Puter files, websites, and serverless workers over MCP.

43k
TypeScript
AGPL-3.0
View repository →

Browser automation for AI agents via MCP, powering ByteDance's Agent TARS hybrid GUI/DOM browser control.

37k
TypeScript
Apache-2.0
View repository →

Run arbitrary shell commands from an MCP-connected AI agent.

37k
TypeScript
Apache-2.0
View repository →

Filesystem access MCP server from ByteDance's UI-TARS/Agent TARS ecosystem.

37k
TypeScript
Apache-2.0
View repository →
io.github.kalehdoo/warehouse-mcp MCP Server | PluginBench