破冰船MCP服务器
专门从事数据操作和管理的智能雪花MCP代理。
概述
Icebreaker是一个先进的模型上下文协议(MCP)服务器,提供智能雪花数据库管理功能。它将Snowflake Labs MCP官方实施的可靠性与社区最佳实践和智能自动化功能相结合。
特性
🏗️ 基础层(基于官方和社区最佳实践)
- 强健的连接管理:具有健康监测和背景刷新的Singleton模式
- 多格式配置:支持YAML和TOML配置文件
- 高级SQL验证:多模式注入检测和综合写入操作分析
- 生产就绪测试:单元测试和集成测试之间明确的基于标记的分离
🛡️ 安全与治理(破冰船情报)
- 多层安全验证:业务规则执行和运营前影响评估
- 全面的审计日志记录:具有详细操作上下文的不可变审计跟踪
- 审批工作流:用于高风险行政操作的可配置审批链
- 回滚功能:针对破坏性操作自动生成回滚计划
📊 数据操作自动化(智能操作)
- 仓库管理:智能悬架、尺寸调整和负载优化
- 用户管理:使用角色层次分析进行安全的用户生命周期管理
- 查询管理:高级查询诊断和性能优化
- 管道编排:自动数据管道监控和自我修复
🚀 情报与分析(AI驱动的洞察)
- 性能诊断:通过瓶颈识别进行全面的查询性能分析
- 成本优化:财务运营分析及成本节约建议
- 安全情报:高级访问模式分析和威胁检测
- 预测分析:资源使用预测和能力规划
快速开始
先决条件
- python:3.12或更高
- 包管理器:
uv(推荐)或pip - 雪花账户:具有预期操作的适当权限
安装
# Clone the repository
git clone
cd icebreaker-mcp
# Install dependencies with uv
uv sync
# Or with pip
pip install -e .配置
- 复制环境模板:
cp .env.example .env- 配置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遵循分层架构:
- 基础层:重复使用官方雪花MCP核心组件
- 社区增强层:整合社区实施中的最佳实践
- 安全层:多层验证和治理
- 智能层:人工智能驱动的分析和自动化
安全
- SQL注入保护:超出基本关键字匹配的多模式检测
- 写入操作检测:全面分析,包括CTE写入检测
- 连接安全性:支持多种身份验证方法,包括私钥
- 审计日志:所有业务的完整审计跟踪
- 安全模式:可配置的行政操作安全限制
路线图
- 第一阶段 (当前):基础和一级-数据发现和基本查询
- 第2阶段:第2层-运营管理(数据运营)
- 第三期:第3级-数据工程和移动
- 阶段4:第4级-高级智能操作
看 docs/DEVELOPMENT_PLAN.md 详细的实施路线图。
贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 按照以下步骤进行更改 编码标准
- 运行测试和质量检查
- 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
致谢
- 雪花实验室:为MCP的正式实施提供基础
- 社区贡献者:为最佳实践提供信息的优秀参考实施
- 移动_mcp:用于示例代码结构和测试模式
- 雪花mcp服务器:用于高级连接管理模式
- mcp-nowflake-server3:用于复杂的SQL分析功能
支持
对于问题、议题或贡献:
