Container-ready MCP server for Snowflake with browser SSO / key-pair auth
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"ae-mcp-2","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# ae-mcp A small, fast MCP server for Snowflake. Four tools, one file, browser SSO auth. ## Auth Authenticates via `externalbrowser` SSO. The connector caches the SSO ID token locally (in the OS keyring, via the `secure-local-storage` extra), so the browser only opens when the cached token expires — not on every server restart. Caching requires this once on the account (ask an admin if it isn't already set): ```sql ALTER ACCOUNT SET ALLOW_ID_TOKEN = TRUE; ``` While the server process is running, `CLIENT_SESSION_KEEP_ALIVE` holds the session open indefinitely — you won't be re-prompted mid-session. ## Install Windows and macOS (Python 3.11+): ```bash python -m pip install --user ae-mcp ``` Or: ```bash uv tool install ae-mcp ``` ## Configure (Cursor / Claude Desktop / Claude Code) ```json { "mcpServers": { "ae-mcp": { "command": "ae-mcp", "env": { "SNOWFLAKE_ACCOUNT": "myorg-myaccount", "SNOWFLAKE_USER": "me@example.com", "SNOWFLAKE_ROLE": "ANALYST_ROLE", "SNOWFLAKE_WAREHOUSE": "COMPUTE_WH", "SNOWFLAKE_MCP_ALLOW_WRITE": "false" } } } } ``` `SNOWFLAKE_MCP_ALLOW_WRITE` is shown explicitly above as a reminder — it's `false` (read-only) by default even if omitted entirely. Optional env: `SNOWFLAKE_DATABASE`, `SNOWFLAKE_SCHEMA`. ## Tools | Tool | Purpose | |---|---| | `snowflake_query` | Run SQL; results capped (default 50 rows, max 1000), wide cells truncated | | `snowflake_list_objects` | `SHOW TERSE` databases/schemas/tables/views/warehouses/roles with LIKE filter | | `snowflake_describe_table` | Column definitions (metadata-only, no warehouse compute) | | `snowflake_session_info` | Current user/role/warehouse/db + connection age | ## Performance notes - One lazy connection, kept alive with `CLIENT_SESSION_KEEP_ALIVE`, reused across calls; auto-reconnects once on session expiry. - Blocking connector calls run in a worker thread — the MCP event loop never stalls. - `SHOW TERSE` / `DE…
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.