Snowflake数据库管理服务器

Icebreaker是一个高级的Model Context Protocol (MCP)服务器,提供智能化的Snowflake数据库管理功能,包括连接管理、安全验证、数据操作自动化和AI驱动的分析。

  • by marcoracer
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 marcoracer/Icebreaker

使用说明

破冰船MCP服务器

专门从事数据操作和管理的智能雪花MCP代理。

概述

Icebreaker是一个先进的模型上下文协议(MCP)服务器,提供智能雪花数据库管理功能。它将Snowflake Labs MCP官方实施的可靠性与社区最佳实践和智能自动化功能相结合。

特性

🏗️ 基础层(基于官方和社区最佳实践)

  • 强健的连接管理:具有健康监测和背景刷新的Singleton模式
  • 多格式配置:支持YAML和TOML配置文件
  • 高级SQL验证:多模式注入检测和综合写入操作分析
  • 生产就绪测试:单元测试和集成测试之间明确的基于标记的分离

🛡️ 安全与治理(破冰船情报)

  • 多层安全验证:业务规则执行和运营前影响评估
  • 全面的审计日志记录:具有详细操作上下文的不可变审计跟踪
  • 审批工作流:用于高风险行政操作的可配置审批链
  • 回滚功能:针对破坏性操作自动生成回滚计划

📊 数据操作自动化(智能操作)

  • 仓库管理:智能悬架、尺寸调整和负载优化
  • 用户管理:使用角色层次分析进行安全的用户生命周期管理
  • 查询管理:高级查询诊断和性能优化
  • 管道编排:自动数据管道监控和自我修复

🚀 情报与分析(AI驱动的洞察)

  • 性能诊断:通过瓶颈识别进行全面的查询性能分析
  • 成本优化:财务运营分析及成本节约建议
  • 安全情报:高级访问模式分析和威胁检测
  • 预测分析:资源使用预测和能力规划

快速开始

先决条件

  • python:3.12或更高
  • 包管理器: uv (推荐)或pip
  • 雪花账户:具有预期操作的适当权限

安装

# Clone the repository
git clone <repository-url>
cd icebreaker-mcp

# Install dependencies with uv
uv sync

# Or with pip
pip install -e .

配置

  1. 复制环境模板:

    cp .env.example .env
    
  2. 配置Snowflake凭据 在 .env:

    # Required
    SNOWFLAKE_ACCOUNT=your_account_identifier
    SNOWFLAKE_USER=your_username
    SNOWFLAKE_ROLE=your_default_role
    SNOWFLAKE_WAREHOUSE=your_default_warehouse
    
    # Choose authentication method
    SNOWFLAKE_PASSWORD=your_password
    # OR
    SNOWFLAKE_PRIVATE_KEY_PATH=/path/to/private_key.pem
    # OR
    SNOWFLAKE_AUTHENTICATOR=externalbrowser
    

运行服务器

# Run with stdio transport (default)
icebreaker-mcp

# Run with HTTP transport
icebreaker-mcp --transport http --host 0.0.0.0 --port 9000

# Run with custom configuration
icebreaker-mcp --config config/production.yaml

# Run with safe mode disabled (full administrative access)
icebreaker-mcp --no-safe-mode

发展

项目结构

icebreaker-mcp/
├── src/icebreaker/              # Main package
│   ├── core/                   # Core infrastructure
│   │   ├── config.py          # Configuration management
│   │   ├── errors.py          # Custom error classes
│   │   └── ...                # Connection, logging, safety
│   ├── services/              # Business logic layer
│   │   ├── discovery_service.py      # Tier 1: Data discovery
│   │   ├── operational_service.py     # Tier 2: DataOps operations
│   │   ├── intelligence_service.py    # Tier 4: AI-powered insights
│   │   └── ...
│   ├── tools/                 # MCP tool implementations
│   └── server.py              # FastMCP server entry point
├── tests/                     # Test suite
│   ├── unit/                 # Unit tests (fast)
│   ├── integration/          # Integration tests (requires Snowflake)
│   └── conftest.py           # Test configuration
├── docs/                     # Documentation
├── pyproject.toml           # Project configuration
└── .env.example             # Environment template

测试

# Run unit tests only (default - fast)
pytest

# Run integration tests (requires Snowflake credentials)
pytest -m integration

# Run specific test categories
pytest -m "unit or contract"
pytest -m "safety"

# Run all tests
pytest -m "unit or integration or contract or safety"

# Run with coverage
pytest --cov=icebreaker

代码质量

# Format code
uv run black .

# Lint code
uv run ruff check .

# Type checking
uv run mypy .

# Run all quality checks
uv run black . && uv run ruff check . && uv run mypy . && pytest -m unit

配置

环境变量

关键配置选项:

  • 破冰船_安全模式:启用管理操作的安全检查(默认值:true)
  • 破冰_查询_超时:查询超时(秒)(默认值:300)
  • 破冰_最大查询_结果:每次查询的最大结果数(默认值:10000)
  • 破冰船_审计_日志:启用全面的审核日志记录(默认值:true)
  • 破冰船调试:启用调试模式以进行详细日志记录(默认值:false)

配置文件

您还可以使用YAML配置文件:

# config/production.yaml
snowflake:
  account: "your_account"
  user: "your_user"
  role: "your_role"
  warehouse: "your_warehouse"
  auth_type: "private_key"
  private_key_path: "/path/to/key.pem"

safe_mode: true
query_timeout: 300
max_query_results: 10000
audit_logging: true
environment: "production"

建筑

Icebreaker遵循分层架构:

  1. 基础层:重复使用官方雪花MCP核心组件
  2. 社区增强层:整合社区实施中的最佳实践
  3. 安全层:多层验证和治理
  4. 智能层:人工智能驱动的分析和自动化

安全

  • SQL注入保护:超出基本关键字匹配的多模式检测
  • 写入操作检测:全面分析,包括CTE写入检测
  • 连接安全性:支持多种身份验证方法,包括私钥
  • 审计日志:所有业务的完整审计跟踪
  • 安全模式:可配置的行政操作安全限制

路线图

  • 第一阶段 (当前):基础和一级-数据发现和基本查询
  • 第2阶段:第2层-运营管理(数据运营)
  • 第三期:第3级-数据工程和移动
  • 阶段4:第4级-高级智能操作

看 docs/DEVELOPMENT_PLAN.md 详细的实施路线图。

贡献

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 按照以下步骤进行更改 编码标准
  4. 运行测试和质量检查
  5. 提交您的更改(git commit -m 'Add amazing feature')
  6. 推到分支(git push origin feature/amazing-feature)
  7. 打开拉取请求

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

致谢

  • 雪花实验室:为MCP的正式实施提供基础
  • 社区贡献者:为最佳实践提供信息的优秀参考实施
  • 移动_mcp:用于示例代码结构和测试模式
  • 雪花mcp服务器:用于高级连接管理模式
  • mcp-nowflake-server3:用于复杂的SQL分析功能

支持

对于问题、议题或贡献: