云能力MCP服务器
  
用于Cloudability API的全面模型上下文协议(MCP)服务器,提供高级成本管理、Kubernetes容器分析和预算预测功能。
🌟 为什么使用此MCP服务器?
- 🔥 集装箱优先:全面的Kubernetes成本分配和监控
- 📊 高级分析:15个维度,8个指标,灵活的过滤和分组
- 💰 预算管理:通过预测和警报完成预算生命周期
- 🚀 生产就绪:全面测试覆盖、类型安全和错误处理
- 🌍 多区域:支持美国、欧盟、亚太地区和中东地区的云计算能力
- 🔐 灵活的身份验证:现代Bearer令牌和传统基本身份验证
🚀 快速开始
先决条件
- Python 3.12+ (现代类型注释需要)
- 紫外线 (推荐包管理器)
- 可云性API访问 (承载令牌或API密钥)
安装
# Clone the repository
git clone https://github.com/eelzinaty/cloudability-mcp-server.git
cd cloudability-mcp-server
# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install dependencies
uv sync
# Set up configuration
cp .env.example .env
# Edit .env with your Cloudability credentials
# Run the server
uv run python run_server.pyMCP客户端配置
添加到MCP客户端配置中:
{
"mcpServers": {
"cloudability": {
"command": "uv",
"args": ["run", "python", "main.py"],
"cwd": "/path/to/cloudability-mcp-server",
"env": {
"CLOUDABILITY_API_URL": "https://api.cloudability.com/v3",
"CLOUDABILITY_ENVIRONMENT_ID": "your-environment-id"
}
}
}
}特性
🚀 API全面覆盖
- 🔥 集装箱成本分配:完成Kubernetes成本分配和监控
- 🔥 容器配置:群集设置和度量代理部署
- 🔥 容器分析:使用模式、资源分配和效率分析
- 🔥 容器发现:标签、计数和资源库存管理
- 成本报告:灵活、强大的成本分析,包含15个维度和8个指标
- 异步报告:将长时间运行的报告排队进行后台处理
- 预算和预测:完成预算生命周期管理和支出预测
- 预算订阅:预算阈值的电子邮件通知
- 估计:本月支出预测及详细明细
- 预测:具有置信区间的多月预测分析
- 账单账户:访问计费帐户信息
- 传统端点:现有集成的向后兼容性
🔐 灵活的身份验证
- 承载令牌:现代apptio opentoken身份验证
- 基本认证:传统的API密钥身份验证
- 多区域支持:美国、欧盟、亚太地区和中小企业地区
📊 高级分析
- 丰富的过滤:按集群、命名空间、工作负载类型等进行筛选
- 灵活分组:按多个维度对结果进行分组
- 排序和分页:高效处理大型数据集
- 多种小部件类型:支持表格、KPI、图表和时间序列
🛠️ 开发者体验
- FastMCP框架:现代MCP服务器实现
- 综合测试:具有模拟功能的完整测试覆盖率
- 类型安全:完整的类型注释,以获得更好的IDE支持
- 清洁建筑:独立的业务逻辑,便于维护
安装
此项目使用 uv 用于依赖性管理。确保你有 uv 安装。
# Install dependencies
uv sync
# Install development dependencies (for testing)
uv sync --dev配置
创建一个 .env 文件基于 .env.example:
# Copy the example configuration
cp .env.example .env环境变量
# Cloudability API Base URL (choose based on your region)
# US: https://api.cloudability.com/v3 (default)
# EU: https://api-eu.cloudability.com/v3
# APAC: https://api-au.cloudability.com/v3
# ME: https://api-me.cloudability.com/v3
CLOUDABILITY_API_URL=https://api.cloudability.com/v3
# Required for Bearer token authentication (apptio-opentoken)
# Get this from your Access Administration environment
CLOUDABILITY_ENVIRONMENT_ID=your-environment-id-here
# Optional: Default view ID for filtering
CLOUDABILITY_DEFAULT_VIEW_ID=0身份验证方法
1.不记名代币(推荐)
对于使用apptio opentoken的现代Cloudability环境:
- 集
CLOUDABILITY_ENVIRONMENT_ID在您的环境中 - 通过
authorization: "Bearer your-apptio-opentoken"工具调用
2.基本身份验证(遗留)
对于传统的API密钥验证:
- 通过
authorization: "Basic your-api-key:"工具调用 - 无需环境ID
用法
运行服务器
# Run the server directly
uv run python main.py
# Or use the run script
uv run python run_server.py可用工具
🔥 集装箱成本分配工具
provision_kubernetes_cluster
设置新集群 用于通过自动化Metrics Agent部署进行云能力监控。
get_cluster_deployment_yaml
获取部署配置 用于在集群中安装Cloudability Metrics代理。
analyze_container_cost_allocations
主要集装箱成本分配工具 -Kubernetes成本分析最重要的工具。
主要特点:
- 共享资源分配:根据实际使用模式划分集群成本
- 公平份额计算:资源预留和实际消耗账户
- 未分配跟踪:识别闲置资源和优化机会
- 弹性分组:命名空间、服务、部署、pod、标签等。
- 资源指标:CPU、内存、网络、文件系统使用和保留
参数:
group:分组维度(例如,\[“命名空间”、“服务”、“cldy:labels:team”\])metrics:资源指标(例如,\[“cpu/reserved”,“memory/reserved_rss”\])filters:范围分析(例如,\[“cluster==uuid”,“namespace==product”\])cost_type:“调整成本”、“调整摊销成本”
退货:
- 采用公平份额计算的成本分配
- 资源使用指标和分配百分比
- 未分配的资源和优化见解
- 可用容量和加权系数
get_container_resource_usage
日常使用趋势 用于容量规划和规模调整分析。
discover_container_labels
查找可用的Kubernetes标签 用于自定义成本分配分组。
count_container_resources
资源调查 -统计集群中的命名空间、服务和Pod。
get_detailed_cluster_info
全面的集群元数据 具有节点详细信息和数据收集状态。
🚀 主要工具
list_clusters
获取所有Kubernetes集群 以及它们的UUID和元数据。
list_budgets
获取所有预算配置 具有当前状态和阈值。
get_budget
获取详细的预算信息 包括支出跟踪和警报。
list_billing_accounts
获取账单账户信息 跨云提供商。
📊 预算和预测工具
get_spending_estimate
本月支出预测 详细的服务明细和每日进度。
主要特点:
- 基于本月迄今使用情况的实时支出估算
- 服务级别支出驱动因素(AWS EC2、RDS等)
- 每日累计支出进展
- 与上月实际值比较
- 速率限制:10个请求/用户/分钟,20/org/分钟
get_spending_forecast
多月预测分析 具有置信区间和历史比较。
参数:
months_back(3-24):建模的历史数据months_forward(1-24):预测期use_current_estimate:在模型中包含当前月份remove_credits:从分析中排除学分remove_one_time_charges:过滤掉一次性成本
退货:
- 带上限/下限的月度预测
- 服务水平预测详细信息
- 用于比较的历史实际值
- 模型参数和置信度指标
create_new_budget
创建预算 具有每月阈值和成本基础配置。
modify_budget
更新现有预算 具有新的阈值或配置更改。
remove_budget
删除预算 从系统中永久删除。
create_budget_alert
设置电子邮件通知 违反预算门槛。
通知类型:
notify_exceeded:实际支出超过预算时发出警报notify_expected:当预计支出超过预算时发出警报
get_budget_alert / list_budget_alerts
管理预算订阅 以及通知偏好。
modify_budget_alert / remove_budget_alert
更新或删除 预算通知订阅。
📊 成本报告工具
execute_cost_report
主要成本报告工具 具有高级分析和灵活的配置。
主要特点:
- 多达15个维度:供应商、地区、服务名称、资源标识符等。
- 多达8个指标:总成本、摊销成本、使用小时等。
- 高级过滤:12个运算符(==、!=、>、\100",
"region=@us-east" ], sort=["total_amortized_costDESC", "vendorASC"], limit=1000, authorization="Bearer your-token" )
Asynchronous reporting for large datasets
report_id = queue_cost_report( start_date="2024-01-01", end_date="2024-03-31", dimensions=["resource_identifier", "service_name", "region"], metrics=["total_amortized_cost", "usage_hours"], filters=["vendor==Amazon"], authorization="Bearer your-token" )
Check status and retrieve results
status = check_report_status( report_id=report_id["id"], authorization="Bearer your-token" )
if status["status"] == "finished": results = get_queued_report_results( report_id=report_id["id"], authorization="Bearer your-token" )
Discover available dimensions and metrics
measures = get_available_measures(authorization="Bearer your-token") operators = get_filter_operators(authorization="Bearer your-token")
## 发展
### 项目结构
cloudability-mcp-server/ ├── main.py # Main MCP server with tool definitions ├── cloudability_tools.py # Core API implementation ├── tests/ │ ├── test_cloudability.py # Legacy endpoint tests │ └── test_cloudability_tools.py # Comprehensive API tests ├── .env.example # Environment configuration template ├── pyproject.toml # Project configuration ├── run_server.py # Server runner script └── README.md # This documentation
### 建筑
- **main.py**:使用FastMCP装饰器清理MCP工具定义
- **cloudability_tools.py**:分离的业务逻辑,全面覆盖API
- **灵活的身份验证**:支持Bearer令牌和基本身份验证
- **综合测试**:HTTP模拟的完整测试覆盖率
- **类型安全**:完整的类型注释,以获得更好的开发体验
## 🤝 贡献
我们欢迎捐款!请查看我们的 [贡献指南](CONTRIBUTING.md) 了解详情。
### 快速贡献步骤
1. 分叉存储库
1. 创建要素分支: `git checkout -b feature/amazing-feature`
1. 通过测试进行更改
1. 运行质量检查: `uv run black . && uv run pytest`
1. 提交拉取请求
### 开发设置
Clone your fork
git clone https://github.com/eelzinaty/cloudability-mcp-server.git cd cloudability-mcp-server
Install development dependencies
uv sync --group dev
Run tests
uv run pytest tests/ -v
Format code
uv run black . && uv run isort .
## 📚 文档
- **[开发指南](DEVELOPMENT.md)**:综合发展文件
- **[贡献指南](CONTRIBUTING.md)**:如何为项目做出贡献
- **[API文档](tool.yaml)**:完整的工具架构定义
- **[可云性API文档](https://developers.cloudability.com/)**:API官方文件
## 🐛 问题与支持
- **错误报告**:
- **功能请求**:
- **讨论**:
## 📄 许可证
此项目根据MIT许可证获得许可-请参阅 [许可证](LICENSE) 文件以获取详细信息。
## 🙏 致谢
- **[FastMCP](https://github.com/jlowin/fastmcp)**:现代MCP服务器框架
- **[模型上下文协议](https://modelcontextprotocol.io/)**:协议规范
- **云能力**:提供全面的云成本管理API
## 🔗 相关项目
- **[MCP服务器](https://github.com/modelcontextprotocol/servers)**:官方MCP服务器实施
- **[克劳德桌面](https://claude.ai/desktop)**:流行的MCP客户端
- **[其他MCP工具](https://github.com/topics/model-context-protocol)**:社区MCP实施
______________________________________________________________________
**由以下材料制成❤️ 面向FinOps和Kubernetes社区**