# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).


## [0.3.11] - 2025-03-10
### Fixed
- Fixed an error with creating a migration file when a user doesn't have `supabase_migrations` schema


## [0.3.10] - 2025-03-09
### Added
- Enhanced migration naming system with improved object type detection for procedures, functions, and views.
- Expanded `retrieve_migrations` tool with pagination, name pattern filtering, and option to include full SQL queries.
- Added a check to validate personal access token and service role key are set before calling API or SDK methods

### Changed
- Updated setup instructions for Claude Desktop
- Updated setup instructions for Cline
- Updated and fixed Smithery.ai setup

### Removed
- Removed redundant `get_api_safety_rules` tool since exceptions already provide enough information to the client


## [0.3.9] - 2025-03-08
### Fixed
- Fixed an issue with api spec tool that prevented spec retrieval


## [0.3.8] - 2025-03-07
### Added
- SQL query validation using PostgreSQL's parser (pglast v7.3+)
- Automatic migration script generation for schema changes
- Universal safety system with standardized risk levels (Low/Medium/High/Extreme)
- Switched to asyncpg v0.30.0+ from psycopg2
- Enhanced API spec tool with multiple query modes and risk assessment
- Connection retry logic for database and API operations
- Code coverage with pytest-cov
- SQL linting with SQLFluff
- Added pyyaml v6.0.2+ for configuration

### Changed
- Refactored to use dependency injection pattern
- Standardized service initialization to synchronous pattern
- Improved SQL safety categorization:
  - `safe`: Read-only operations (always allowed)
  - `write`: Data modification (requires unsafe mode)
  - `destructive`: Schema changes (requires unsafe mode + confirmation)
- Updated Ruff to v0.9.9
- Added asyncpg-stubs and pytest-mock for testing

## [0.3.7] - 2025-03-02
### Fixed
- Documentation inaccuracies

### Added
- Auth admin SDK support for local Supabase instances


## [0.3.6] - 2025-02-26
### Added
- Added `call_auth_admin_method` which enables MCP server to manage users in your database (create, update, delete, confirm). All Auth SDK methods are supported
- Added `get_auth_admin_methods_spec` to retrieve documentation for all available Auth Admin methods. Response objects now use attribute access (dot notation) instead of dictionary access.

### Fixed
- Fixed an issue with improper encoding of database passwords. Previously passwords containing "%" symbol led to connection failures


## [0.3.5] - 2025-02-26
### Fixed
- Fixed an issue with `get_tables` so that it reliably returns foreign tables and views
- Updated docs to describe how to setup mcp.json with project-specific MCPs
- Expanded and improved test suite to cover each MCP tool


## [0.3.4] - 2025-02-25
### Fixed
- Improved `get_tables` to return foreign data tables


## [0.3.3] - 2025-02-25
### Fixed
- Fixed a bug with `readonly` scope being incorrectly managed in db client

## [0.3.2] - 2025-02-25
### Fixed
- Fixed a bug preventing execution of DDL commands (create, alter tables, etc.)

## [0.3.1] - 2025-02-23
### Changed
- Significantly improved docs to make install, configuration, usage instructions super clear


## [0.3.0] - 2025-02-23
### Added
- Full support for read-write SQL operations:
  - Implemented safety mode system with read-only (default) and read-write modes
  - Added mode switching with automatic reset to read-only
  - Enhanced transaction support for testing write operations
  - Improved error handling for read-only violations
- Support for Supabase Management API
  - Introduces supabase management API integration with safe (enabled by default) and yolo modes
  - Includes the following tools:
    - `send_management_api_request` to send arbitrary requests to Supabase Management API, with auto-injection of project ref and safety mode control.
    - `get_management_api_spec` to get the enriched API specification with safety information
    - `get_management_api_safety_rules` to get all safety rules including blocked and unsafe operations with human-readable explanations
    - `live_dangerously` to switch to yolo mode
  - Safety features:
    - Divides API methods into `safe`, `unsafe` and `blocked` categories based on the risk of the operation
    - Allows to switch between safe and yolo modes dynamically
    - Blocked operations (delete project, delete database) are not allowed regardless of the mode


## [0.2.2] - 2025-02-20
### Added
- Support for different Supabase regions:
  - Configuration via `SUPABASE_REGION` environment variable
  - Validation for all 16 supported AWS regions
  - Default to `us-east-1` for backward compatibility
  - Enhanced logging for region information
  - Comprehensive documentation and examples

## [0.2.1] - 2025-02-19
### Added
- Package distribution support:
  - PyPI package publishing setup
  - Installation via `pipx` and `uv`
  - Entry point scripts for direct execution
- Smithery.ai deployment configuration

### Changed
- BREAKING: Installation and execution methods:
  - Switched from direct script execution to proper module structure
  - Updated Cursor/Windsurf configuration for package-based execution
- Improved setup instructions in README

## [0.2.0] - 2025-02-18
Intermediary release for package distribution support

## [0.1.0] - 2025-02-16
### Added
- Initial release
- Basic MCP server functionality
- Supabase database connection support
- Integration with Cursor and Windsurf IDEs

[0.3.0]: https://github.com/alexander-zuev/supabase-mcp-server/releases/tag/v0.3.0
[0.2.2]: https://github.com/alexander-zuev/supabase-mcp-server/releases/tag/v0.2.2
[0.2.1]: https://github.com/alexander-zuev/supabase-mcp-server/releases/tag/v0.2.1
[0.2.0]: https://github.com/alexander-zuev/supabase-mcp-server/releases/tag/v0.2.0-dev0
[0.1.0]: https://github.com/alexander-zuev/supabase-mcp-server/releases/tag/v0.1.0
