NestDaddy

QueryPilot

io.github.nickklos10/querypilot · v0.1.1

Safe SQL gateway for AI agents: SELECT-only validation, access policies, masking, audit trail, evals

Connect Runs on your machine

Terminal
claude mcp add querypilot -e QUERYPILOT_DATABASE_URL=<QUERYPILOT_DATABASE_URL> -e QUERYPILOT_DIALECT=<QUERYPILOT_DIALECT> -e QUERYPILOT_MAX_ROWS=<QUERYPILOT_MAX_ROWS> -e QUERYPILOT_TIMEOUT_SECONDS=<QUERYPILOT_TIMEOUT_SECONDS> -e QUERYPILOT_ACCESS_POLICY_JSON=<QUERYPILOT_ACCESS_POLICY_JSON> -e QUERYPILOT_MCP_TRANSPORT=<QUERYPILOT_MCP_TRANSPORT> -- uvx querypilot==0.1.1
claude_desktop_config.json
{
  "mcpServers": {
    "querypilot": {
      "command": "uvx",
      "args": [
        "querypilot==0.1.1"
      ],
      "env": {
        "QUERYPILOT_DATABASE_URL": "<QUERYPILOT_DATABASE_URL>",
        "QUERYPILOT_DIALECT": "<QUERYPILOT_DIALECT>",
        "QUERYPILOT_MAX_ROWS": "<QUERYPILOT_MAX_ROWS>",
        "QUERYPILOT_TIMEOUT_SECONDS": "<QUERYPILOT_TIMEOUT_SECONDS>",
        "QUERYPILOT_ACCESS_POLICY_JSON": "<QUERYPILOT_ACCESS_POLICY_JSON>",
        "QUERYPILOT_MCP_TRANSPORT": "<QUERYPILOT_MCP_TRANSPORT>"
      }
    }
  }
}
~/.cursor/mcp.json
{
  "mcpServers": {
    "querypilot": {
      "command": "uvx",
      "args": [
        "querypilot==0.1.1"
      ],
      "env": {
        "QUERYPILOT_DATABASE_URL": "<QUERYPILOT_DATABASE_URL>",
        "QUERYPILOT_DIALECT": "<QUERYPILOT_DIALECT>",
        "QUERYPILOT_MAX_ROWS": "<QUERYPILOT_MAX_ROWS>",
        "QUERYPILOT_TIMEOUT_SECONDS": "<QUERYPILOT_TIMEOUT_SECONDS>",
        "QUERYPILOT_ACCESS_POLICY_JSON": "<QUERYPILOT_ACCESS_POLICY_JSON>",
        "QUERYPILOT_MCP_TRANSPORT": "<QUERYPILOT_MCP_TRANSPORT>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "querypilot": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "querypilot==0.1.1"
      ],
      "env": {
        "QUERYPILOT_DATABASE_URL": "<QUERYPILOT_DATABASE_URL>",
        "QUERYPILOT_DIALECT": "<QUERYPILOT_DIALECT>",
        "QUERYPILOT_MAX_ROWS": "<QUERYPILOT_MAX_ROWS>",
        "QUERYPILOT_TIMEOUT_SECONDS": "<QUERYPILOT_TIMEOUT_SECONDS>",
        "QUERYPILOT_ACCESS_POLICY_JSON": "<QUERYPILOT_ACCESS_POLICY_JSON>",
        "QUERYPILOT_MCP_TRANSPORT": "<QUERYPILOT_MCP_TRANSPORT>"
      }
    }
  }
}

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

NameDescription
QUERYPILOT_DATABASE_URL
Required, secret
SQLAlchemy-style database connection URL, e.g. sqlite:///demo.db or postgresql://user:pass@host:5432/db. Equivalent to --database-url.
QUERYPILOT_DIALECT
Optional
SQL dialect for the connector. Equivalent to --dialect.
QUERYPILOT_MAX_ROWS
Optional
Maximum rows returned per query. Equivalent to --max-rows.
QUERYPILOT_TIMEOUT_SECONDS
Optional
Query execution timeout in seconds. Equivalent to --timeout-seconds.
QUERYPILOT_ACCESS_POLICY_JSON
Optional
JSON-encoded AccessPolicy (blocked_columns, allowed_columns, row_filters, masking_rules) enforced before execution. Equivalent to --access-policy-json.
QUERYPILOT_MCP_TRANSPORT
Optional
MCP transport used by `querypilot mcp`. Equivalent to --transport. Most MCP clients should leave this at stdio; streamable-http is for clients that speak Streamable HTTP directly.

Details

Package[email protected] (PYPI, stdio)
First published11 Jul 2026
Last updated11 Jul 2026
Registry nameio.github.nickklos10/querypilot

More databases servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.