Fork notice and attribution
===========================

This repository (`nsphung/mcp-snowflake-server`) is forked from:

- https://github.com/isaacwasserman/mcp-snowflake-server

Current fork version: 0.7.0

> Note: version is managed by `release-please`; see `pyproject.toml` for the canonical value.

License
-------

This project is distributed under the MIT License.
See the `LICENSE` file in the repository root for the complete license text.

The upstream project (`isaacwasserman/mcp-snowflake-server`) changed its
license to MIT at commit 76c3e4a1866cf95e1b6256434f9907681c6c49cc (v0.4.0).
This fork follows the same license change.

Attribution
-----------

Upstream authors and contributors retain copyright to their contributions.
Fork-specific contributions are authored by `nsphung` unless otherwise noted in
git history.

Notable fork-specific modifications
-----------------------------------

- Added Snowflake key-pair authentication support (`--private_key_file`,
  `--private_key_file_pwd` CLI flags and corresponding environment variables).
- Added TOML multi-connection configuration support (`--connections-file`,
  `--connection-name`) to manage multiple Snowflake environments in a single
  file (see `example_connections.toml`).
- Added `--exclude-json-results` CLI option to omit embedded JSON resources
  from tool responses, reducing LLM context window usage.
- Added `runtime_config.json` exclusion pattern support to filter databases,
  schemas, and tables from discovery tools.
- Added Dockerfile for containerised deployments.
- Added Smithery integration for one-command Claude Desktop installation.
- Added dev tooling: `ruff` (format + lint), `mypy` (static type checking),
  `prek` hooks, `pytest` + `pytest-asyncio` + `pytest-cov` (test suite
  with branch coverage), and a `Makefile` for common workflows.
- Added `bun`-managed [`oxfmt`](https://github.com/oxc-project/oxc)
  (multi-language formatter) as a development dependency (`package.json`,
  `bun.lock`). Formatter configuration lives in `.oxfmtrc.json`. The `oxfmt`
  hook is wired into `prek.toml` with `always_run = true`, ensuring it runs on
  every commit regardless of which file types are staged. `make install` now
  calls `bun install` automatically; `make fmt` and `make fmt-check` expose
  oxfmt via the Makefile for a single-tool developer workflow.
- Added GitHub Actions CI: lint checks, test runs, and codecov coverage
  reporting.
- Added `release-please` for automated changelog and release management.
- Renamed PyPI package to `mcp-snowflake-server-nsp` and enriched project
  metadata (license, authors, keywords, classifiers, project URLs).
- Migrated license from GPL-3.0 to MIT, following upstream license change
  at commit 76c3e4a1866cf95e1b6256434f9907681c6c49cc.
- Added GitHub Actions workflow for automated PyPI publishing via OIDC trusted
  publishing with Sigstore attestations.
- Published server to the MCP registry (`server.json`).
- Added VSCode and OpenCode quick-start configuration examples in README.
- Added PyPI download and MCP-compatible badges.
- Fixed README relative links to use absolute GitHub URLs for correct rendering
  on PyPI.
- Added OAuth 2.0 authentication support: client credentials flow
  (`oauth_client_credentials` authenticator) and bearer-token flow (`oauth`
  authenticator), with corresponding `SNOWFLAKE_OAUTH_*` environment variables.
- Added startup validation of required connection parameters per authenticator
  type; validation errors are now raised as `ValueError` with actionable
  messages instead of silent crashes or bare `AssertionError`.
- Upgraded `snowflake-snowpark-python` dependency to 1.50.0.
- Logged server version at startup via `importlib.metadata`.

Last updated: 2026-05-04
