MCPLow riskUnclaimed

QueryPilot

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

nickklos10nickklos10/querypilot★ 1Updated Jul 11, 2026

server.json

{
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "name": "io.github.nickklos10/querypilot",
  "description": "Safe SQL gateway for AI agents: SELECT-only validation, access policies, masking, audit trail, evals",
  "title": "QueryPilot",
  "repository": {
    "url": "https://github.com/nickklos10/QueryPilot",
    "source": "github",
    "id": "1223044760"
  },
  "version": "0.1.1",
  "websiteUrl": "https://github.com/nickklos10/QueryPilot#mcp-server",
  "packages": [
    {
      "registryType": "pypi",
      "registryBaseUrl": "https://pypi.org",
      "identifier": "querypilot",
      "version": "0.1.1",
      "runtimeHint": "uvx",
      "transport": {
        "type": "stdio"
      },
      "packageArguments": [
        {
          "description": "Selects the `querypilot mcp` subcommand (as opposed to `serve` or `eval`).",
          "value": "mcp",
          "type": "positional"
        }
      ],
      "environmentVariables": [
        {
          "description": "SQLAlchemy-style database connection URL, e.g. sqlite:///demo.db or postgresql://user:pass@host:5432/db. Equivalent to --database-url.",
          "isRequired": true,
          "format": "string",
          "isSecret": true,
          "name": "QUERYPILOT_DATABASE_URL"
        },
        {
          "description": "SQL dialect for the connector. Equivalent to --dialect.",
          "format": "string",
          "default": "sqlite",
          "choices": [
            "sqlite",
            "postgres",
            "postgresql"
          ],
          "name": "QUERYPILOT_DIALECT"
        },
        {
          "description": "Maximum rows returned per query. Equivalent to --max-rows.",
          "format": "number",
          "default": "100",
          "name": "QUERYPILOT_MAX_ROWS"
        },
        {
          "description": "Query execution timeout in seconds. Equivalent to --timeout-seconds.",
          "format": "number",
          "default": "10",
          "name": "QUERYPILOT_TIMEOUT_SECONDS"
        },
        {
          "description": "JSON-encoded AccessPolicy (blocked_columns, allowed_columns, row_filters, masking_rules) enforced before execution. Equivalent to --access-policy-json.",
          "format": "string",
          "name": "QUERYPILOT_ACCESS_POLICY_JSON"
        },
        {
          "description": "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.",
          "format": "string",
          "default": "stdio",
          "choices": [
            "stdio",
            "streamable-http",
            "sse"
          ],
          "name": "QUERYPILOT_MCP_TRANSPORT"
        }
      ]
    }
  ],
  "_meta": {
    "io.modelcontextprotocol.registry/publisher-provided": {
      "tool": "manual",
      "version": "0.1.1"
    }
  }
}

Permissions

DeclaredDetected
Runs code—python
Installs—pypi:querypilot@0.1.1
Runs install scripts—None
NetworkNoneNone
Needs credentialsQUERYPILOT_DATABASE_URLQUERYPILOT_DATABASE_URL
Outside the workspace—None
Agent tools—None

Checks

Low risk · Nothing worth a warning was found.

Not reviewed by a person · Checked by rules; the model review is not switched on yet.

Versions

  1. #10.1.1latestOct 7, 2026