{
  "name": "io.github.isaacwasserman/mcp-snowflake-server",
  "description": "A community-maintained MCP that connects an AI agent to a Snowflake account. Lists databases, schemas, and tables, returns column-level metadata, and executes SELECT against a warehouse you choose at connect time. Authentication uses Snowflake key-pair auth or username/password; the safe default is a read-only role on a dedicated WAREHOUSE so an LLM cannot burn through credits accidentally.",
  "status": "active",
  "version": "latest",
  "_meta": {
    "com.top-mcps/lastVerified": "2026-06-02",
    "com.top-mcps/score": {
      "value": 57,
      "rubricVersion": "2026-04",
      "lastComputed": "2026-06-02T13:16:41.645Z",
      "methodology": "https://top-mcps.com/about/methodology"
    },
    "com.top-mcps/stats": {
      "fetchedAt": "2026-06-02T13:16:41.064Z",
      "githubStars": 183,
      "lastCommitAt": "2025-10-07T15:05:17Z"
    }
  },
  "repository": {
    "url": "https://github.com/isaacwasserman/mcp-snowflake-server",
    "source": "github"
  },
  "author": {
    "name": "Community"
  },
  "packages": [
    {
      "registryType": "pypi",
      "registryBaseUrl": "https://pypi.org",
      "identifier": "mcp-snowflake-server",
      "version": "latest",
      "transport": {
        "type": "stdio"
      },
      "environmentVariables": [
        {
          "name": "SNOWFLAKE_ACCOUNT",
          "description": "SNOWFLAKE_ACCOUNT — required credential for Snowflake.",
          "isRequired": true,
          "isSecret": true
        },
        {
          "name": "SNOWFLAKE_USER",
          "description": "SNOWFLAKE_USER — required credential for Snowflake.",
          "isRequired": true,
          "isSecret": true
        },
        {
          "name": "SNOWFLAKE_PASSWORD",
          "description": "SNOWFLAKE_PASSWORD — required credential for Snowflake.",
          "isRequired": true,
          "isSecret": true
        },
        {
          "name": "SNOWFLAKE_ROLE",
          "description": "SNOWFLAKE_ROLE — required credential for Snowflake.",
          "isRequired": true,
          "isSecret": true
        },
        {
          "name": "SNOWFLAKE_WAREHOUSE",
          "description": "SNOWFLAKE_WAREHOUSE — required credential for Snowflake.",
          "isRequired": true,
          "isSecret": true
        },
        {
          "name": "SNOWFLAKE_DATABASE",
          "description": "SNOWFLAKE_DATABASE — required credential for Snowflake.",
          "isRequired": true,
          "isSecret": true
        }
      ]
    }
  ],
  "capabilities": {
    "tools": [
      {
        "name": "list_databases",
        "description": "List databases visible to the connected role.",
        "sideEffect": "read"
      },
      {
        "name": "list_schemas",
        "description": "List schemas in a database.",
        "sideEffect": "read",
        "args": [
          {
            "name": "database",
            "type": "string",
            "required": true
          }
        ]
      },
      {
        "name": "list_tables",
        "description": "List tables in a schema.",
        "sideEffect": "read",
        "args": [
          {
            "name": "schema",
            "type": "string",
            "required": true
          }
        ]
      },
      {
        "name": "describe_table",
        "description": "Return columns, types, and clustering info for a table.",
        "sideEffect": "read",
        "args": [
          {
            "name": "table",
            "type": "string",
            "required": true
          }
        ]
      },
      {
        "name": "query",
        "description": "Run a SELECT statement and return rows.",
        "sideEffect": "read",
        "args": [
          {
            "name": "sql",
            "type": "string",
            "required": true
          }
        ]
      }
    ],
    "security": {
      "scope": "read-only",
      "sandbox": "Connects to a Snowflake account using key-pair or password auth. Read-only at the MCP tool layer; pair with a SELECT-only role and a resource-monitored XS warehouse to bound spend.",
      "gotchas": [
        "Snowflake is billed per warehouse-second. Always attach a resource monitor to the warehouse the MCP uses.",
        "Static passwords in env are leak-prone — prefer key-pair auth and a key path the OS keychain can protect.",
        "A privileged role connected here can drop tables. Scope to a SELECT-only role even on staging accounts."
      ]
    }
  },
  "_links": {
    "html": "https://top-mcps.com/mcp/snowflake",
    "markdown": "https://top-mcps.com/mcp/snowflake.md",
    "methodology": "https://top-mcps.com/about/methodology"
  }
}
