Skip to main content
Glama

Igloo MCP

by Evan-Kim2028
CHANGELOG.md12.6 kB
# 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.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [2.0.0] - 2025-10-07 ### BREAKING CHANGES **🐻‍❄️ Package Rebrand: snowcli-tools → igloo-mcp** The package has been renamed to better reflect its MCP-first architecture and create a unique brand identity. #### Changed - **Package name**: `snowcli-tools` → `igloo-mcp` - **Import namespace**: `from snowcli_tools` → `from igloo_mcp` - **PyPI package**: `pip install snowcli-tools` → `pip install igloo-mcp` - **MCP command**: `snowcli-mcp` → `igloo-mcp` - **GitHub repository**: `Evan-Kim2028/snowcli-tools` → `Evan-Kim2028/igloo-mcp` **CLI Interface Removed** The legacy CLI interface (`nanuk` command) has been removed. Igloo is now MCP-only. #### Removed - `nanuk` CLI command and all subcommands - `src/igloo_mcp/cli.py` and `src/igloo_mcp/commands/` directory (~774 LOC) - CLI-specific dependency: `click>=8.0.0` - CLI-specific tests #### Migration - **Rebrand migration**: See [Migration Guide](docs/migration-guide.md) for package name changes and CLI to MCP migration - **CLI migration**: See [CLI Migration Guide](docs/cli-to-mcp-migration.md) for transitioning to MCP tools - All CLI functionality is available through MCP tools (see table in migration guide) #### Rationale - Package name is "nanuk-**mcp**" - should be MCP-only - Reduces codebase by 774 LOC (40% reduction in interface code) - Eliminates user confusion about which interface to use - Aligns with AI-first architecture #### Why "Nanuk"? - 🐻‍❄️ Nanuk (polar bear in Inuit) connects to Snowflake's arctic theme - 🎯 MCP-first: Name reflects focus on Model Context Protocol - ✨ Unique & memorable: Stands out in the MCP ecosystem - 🚀 Future-proof: Positions as premier Snowflake MCP provider ## [1.9.0] - 2025-01-04 ### Phase 1: Code Simplification (Completed) #### Added - New simplified lineage models: `models.py`, `traversal.py`, `format.py` (~400 LOC total) - Consolidated `health.HealthCheckTool` combining health_check, check_profile_config, and get_resource_status - Cortex AI availability check in health tool (`include_cortex` parameter) - Simplified `test_connection` tool as lightweight wrapper - Migration guide: `docs/v1.9.0_migration.md` #### Changed - Lineage module reduced from 6,874 LOC to ~400 LOC (94% reduction) - Health tools reduced from 5 tools (426 LOC) to 2 tools (150 LOC) - `LineageGraph` aliased to `Graph` for backward compatibility - `query_lineage` tool updated to use simplified lineage API #### Removed - `column_parser.py` (584 LOC) - Column-level lineage (too granular for common use cases) - `cross_db.py` (509 LOC) - Cross-database lineage (niche use case) - `impact.py` (830 LOC) - Impact analysis (move to optional package in future) - `history.py` (889 LOC) - Lineage history tracking (complex, rarely used) - `transformations.py` (~600 LOC) - Transformation metadata (overlaps with column parser) - `external.py` (~400 LOC) - External source mapping (not implemented) - `check_resource_dependencies` MCP tool (88 LOC) - Confusing API, rarely used - `check_profile_config` MCP tool - Merged into HealthCheckTool - `get_resource_status` MCP tool - Merged into HealthCheckTool **Total Phase 1 Impact**: -4,088 LOC (66% code reduction) ### Phase 2: Incremental Catalog Building (Completed) #### Added - `catalog/incremental.py` (~500 LOC) - LAST_DDL-based delta detection - `IncrementalCatalogBuilder` class for smart caching - `build_incremental_catalog()` convenience function - Hybrid querying (INFORMATION_SCHEMA + ACCOUNT_USAGE) - Catalog metadata tracking (`_catalog_metadata.json`) - Automatic fallback to full refresh when needed #### Features - **10-20x faster catalog refreshes** - Only updates changed objects - **LAST_DDL detection** - Uses INFORMATION_SCHEMA.TABLES.LAST_DDL column - **Hybrid approach** - Combines INFORMATION_SCHEMA (fast) with ACCOUNT_USAGE (complete) - **Safety margin** - 3-hour buffer for ACCOUNT_USAGE latency - **Automatic fallback** - Full refresh if metadata is old (>7 days) or corrupted - **Backward compatible** - Works with existing catalog format #### Changed - `catalog/__init__.py` - Exported new incremental builder functions - Updated documentation to reference incremental builds #### Performance Based on validated testing (583 tables, 10 changes in 7 days): - **First build**: Same as before (~5 min for 1000 tables) - **Refresh with 10 changes**: 5 min → 5 sec (**60x faster**) - **Refresh with 0 changes**: 5 min → 2 sec (**150x faster**) - **Refresh with 100 changes**: 5 min → 1 min (**5x faster**) **Total Phase 2 Impact**: +500 LOC, 10-20x performance improvement --- ## [1.4.5] - 2025-09-27 ### Added - **🎯 Complete Profile Validation Implementation**: Full rollout of enhanced profile validation system - All profile validation features from v1.4.4 now fully implemented and tested - Comprehensive documentation suite with troubleshooting guides and quick-start materials - New MCP diagnostic tools: `health_check`, `check_profile_config`, `get_resource_status`, `check_resource_dependencies` - Enhanced error handling with MCP-compliant structured responses - Real-time health monitoring with caching and performance optimization ### Enhanced - **📚 Comprehensive Documentation Package**: - `docs/profile_troubleshooting_guide.md` - Complete troubleshooting reference with before/after examples - `docs/profile_validation_quickstart.md` - Step-by-step setup guide for new users - `docs/mcp_diagnostic_tools.md` - Complete API reference for diagnostic tools - Enhanced README.md and MCP server user guide with practical examples - **🏥 Production-Ready Health Monitoring**: - MCPHealthMonitor with comprehensive component tracking - MCPResourceManager for dependency-aware resource management - Structured error responses with specific error codes (-32001 to -32005) - Performance optimizations with TTL-based caching ### Fixed - **🎯 User Experience Issues**: Complete elimination of misleading timeout errors for profile configuration problems - **🚀 Development Experience**: Enhanced error messages with immediate, actionable guidance - **⚡ Performance**: Optimized profile validation with caching and modern Python patterns ## [1.4.4] - 2025-09-27 ### Added - **🎯 Enhanced Profile Validation System**: Revolutionary improvement to user experience - Startup profile validation that catches configuration issues immediately - Clear, actionable error messages instead of confusing timeout errors - Modern Python 3.12+ implementation with performance caching - Structured error responses following MCP JSON-RPC 2.0 standards - **🏥 Comprehensive Health Monitoring**: New diagnostic tools for MCP server - `health_check`: Real-time server health status with component details - `check_profile_config`: Profile validation and configuration recommendations - `get_resource_status`: Resource availability and dependency checking - `check_resource_dependencies`: Specific resource dependency validation - **🔧 Advanced Error Handling Infrastructure**: - Circuit breaker pattern for fault-tolerant Snowflake operations - Comprehensive error categorization (Connection, Permission, Timeout, Configuration) - `ProfileConfigurationError` with rich context and available profiles - MCP-compliant error codes (-32001 to -32005) with structured data - **📚 Comprehensive Documentation Suite**: - Profile Troubleshooting Guide with before/after comparisons - Profile Validation Quick-Start Guide with step-by-step setup - MCP Diagnostic Tools Reference with API documentation - Enhanced user guides with v1.4.4+ features and examples - **🔬 Extensive Testing Infrastructure**: - Robust service layer with health monitoring and safe execution patterns - Enhanced MCP server configuration examples with multiple setup options - Extensive test coverage for new reliability infrastructure (~80 new tests) ### Changed - **🚀 User Experience Transformation**: - Profile validation errors now provide immediate, clear feedback - MCP server startup includes proactive profile validation - Error messages include specific available profiles and next steps - Documentation updated with practical troubleshooting examples - **⚡ Performance Optimizations**: - Profile validation caching with `@functools.lru_cache` - mtime-based configuration file caching for efficiency - Modern Python 3.12+ patterns (match statements, union types) - **📖 Documentation Enhancements**: - Updated README.md with comprehensive profile management section - Enhanced MCP server user guide with health monitoring capabilities - Features overview updated with v1.4.4+ improvements - Added cross-references between related documentation ### Fixed - **🐛 Critical UX Issues**: - Eliminated misleading timeout errors for profile configuration problems - Fixed silent fallback to non-existent "default" profile - Resolved late error detection that confused users - Improved error messaging accessibility and clarity - **🔧 Technical Improvements**: - Type annotation errors in circuit breaker and error handling modules - Code formatting consistency across all Python files - MCP configuration format and environment variable documentation - Import optimization and unused code removal ## [1.4.3] - 2025-09-26 ### Added - Session management helpers that snapshot and restore Snowflake context so MCP overrides stay scoped to a single tool call. - `--enable-cli-bridge` flag to optionally expose the legacy `snow` CLI bridge tool; the FastMCP server defaults to the in-process connector tools. - `local_sf_test/` smoke harness that fetches the latest rows from `object_parquet2` for visual verification. ### Changed - MCP argument parsing now treats missing defaults as `None`, preventing help-string values from becoming accidental overrides. - Snowcli MCP tools reuse the official `SnowflakeService` connection under a scoped lock rather than opening ad-hoc sessions. - Documentation updated with the new flag, session model, and smoke-test instructions. ## [1.3.0] - 2024-09-24 ### Added - **MCP (Model Context Protocol) Server Support**: Complete integration with AI assistants - New `snowflake-cli mcp` command to run MCP server - 7 MCP tools: execute_query, preview_table, build_catalog, query_lineage, build_dependency_graph, test_connection, get_catalog_summary - Optional dependency installation via `pip install snowcli-tools[mcp]` - stdio transport with JSON-RPC 2.0 protocol - Compatible with VS Code, Cursor, Claude Code, and other MCP clients - **Comprehensive MCP Documentation** - `/docs/mcp/` directory with technical and user guides - ASCII-based architecture diagrams for GitHub compatibility - Complete setup and integration instructions - Real-world DeFi sample dataset examples - **Sample Data Infrastructure** - `/examples/sample_data/` with production DeFi pipeline DDL - `dex_trades_stable` table as primary example (224M+ records) - Automated setup script for sample dataset installation - Complete database structure for DEX trading analytics - **Enhanced Lineage Analysis** - Improved partial object lookup for lineage queries - Better error handling for missing objects - HTML visualization support for lineage graphs - Support for task objects in lineage traversal ### Changed - Updated all documentation to use real DeFi examples instead of generic placeholders - Moved MCP configuration to examples folder as template - Enhanced README with MCP installation and usage instructions - Improved error messages and user feedback across MCP tools ### Fixed - Large file handling in git repository (removed oversized lineage_graph.json) - Pre-commit hook compliance (formatting, imports, trailing whitespace) - Unused variable warnings in MCP server code ### Technical Details - MCP server runs as async stdio server using `mcp.server.stdio` - Integrates with existing SnowCLI and LineageQueryService infrastructure - Supports all existing snowcli-tools functionality through MCP protocol - Maintains backward compatibility with CLI usage ## [1.2.x] - Previous Versions - Core lineage analysis and catalog building functionality - Dependency graph generation - Snowflake CLI integration - Basic documentation and examples

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Evan-Kim2028/igloo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server