🚀 CFM提示 - 成本优化MCP服务器
这是一个全面的模型上下文协议(MCP)服务器,用于AWS成本分析和提供优化建议,旨在与Amazon Q CLI及其他支持MCP的客户端无缝协作。
🚀 快速开始
CFM提示 - 成本优化MCP服务器可以帮助你对AWS资源进行成本分析和优化。按照以下步骤,你可以轻松使用该服务器:
- 安装必要的依赖和配置AWS凭证。
- 应用所需的IAM权限。
- 选择合适的使用方式,如使用Q CLI聊天或与Amazon Q开发者插件集成。
✨ 主要特性
核心AWS服务集成
- 成本资源管理器 - 检索成本数据和使用指标。
- 成本优化中心 - 获取AWS成本优化建议。
- 计算优化器 - 提供计算资源的合理调整建议。
- 可信顾问 - 进行成本优化检查并给出建议。
- 性能洞察 - 提供RDS性能指标和分析。
- 成本和使用报告(CUR) - 分析S3中的成本和使用报告。
成本优化手册
- 🔧 EC2合理调整 - 识别未充分利用的EC2实例。
- 💾 EBS优化 - 查找未使用和未充分利用的卷。
- 🗄️ RDS优化 - 识别闲置和未充分利用的数据库。
- ⚡ Lambda优化 - 查找过度配置和未使用的函数。
- 📊 综合分析 - 多服务成本分析。
高级特性
- 实时CloudWatch指标 - 使用实际的AWS指标进行分析。
- 多种输出格式 - 生成JSON和Markdown报告。
- 成本计算 - 估算节省的成本和成本明细。
- 可操作的建议 - 基于优先级的优化建议。
📦 安装指南
前提条件
- Python 3.11 或更高版本。
- 已配置适当凭证的AWS CLI。
- Amazon Q CLI(用于MCP集成) - 安装链接
安装步骤
- 克隆仓库
git clone https://github.com/aws-samples/sample-cfm-tips-mcp.git
cd sample-cfm-tips-mcp
- 安装依赖
pip install -r requirements.txt
- 配置AWS凭证
aws configure
- 应用IAM权限
- 创建一个包含上述权限的IAM策略。
- 将该策略附加到你的IAM用户或角色。
- 安装MCP配置
python3 setup.py
- 使用选项1:使用Q CLI聊天
q chat
Show me cost optimization recommendations
- 使用选项2:与Amazon Q开发者插件或Kiro集成
- 在你的IDE中打开Amazon Q开发者插件。
- 点击聊天 -> 🛠️ 配置MCP服务器 -> ➕ 添加新的MCP。
- 使用以下配置
- 范围:全局
- 名称:cfm - tips
- 传输方式:stdio
- 命令:python3
- 参数:<替换为文件夹路径>/mcp_server_with_runbooks.py
- 超时时间:60
💻 使用示例
基础用法
"获取我上个月的AWS成本"
"显示成本优化建议"
"我的主要成本驱动因素是什么?"
资源优化
"查找us - east - 1中未充分利用的EC2实例"
"显示我可以删除的未使用EBS卷"
"识别闲置的RDS数据库"
"查找未使用的Lambda函数"
报告生成
"生成全面的成本优化报告"
"以Markdown格式创建EC2合理调整报告"
"生成包含成本节省的EBS优化报告"
多服务分析
"对us - east - 1中的所有服务进行全面成本分析"
"分析我的AWS基础设施以寻找成本优化机会"
"显示即时的成本节省机会"
📚 详细文档
项目结构
sample-cfm-tips-mcp/
├── playbooks/ # CFM提示优化手册引擎
├── services/ # 作为成本优化数据源的AWS服务
├── mcp_server_with_runbooks.py # 主MCP服务器
├── runbook_functions.py # 成本优化手册实现
├── mcp_runbooks.json # MCP配置文件的模板文件
├── requirements.txt # Python依赖项
├── test_runbooks.py # 集成测试
├── diagnose_cost_optimization_hub_v2.py # 诊断实用工具
├── RUNBOOKS_GUIDE.md # 详细使用指南
└── README.md # 项目说明文档
可用工具
成本分析工具
get_cost_explorer_data
- 检索AWS成本和使用数据。
list_coh_enrollment
- 检查成本优化中心的注册状态。
get_coh_recommendations
- 获取成本优化建议。
get_coh_summaries
- 获取建议摘要。
get_compute_optimizer_recommendations
- 获取计算优化建议。
EC2优化
ec2_rightsizing
- 分析EC2实例以寻找合理调整机会。
ec2_report
- 生成详细的EC2优化报告。
EBS优化
ebs_optimization
- 分析EBS卷以进行优化。
ebs_unused
- 识别未使用的EBS卷。
ebs_report
- 生成EBS优化报告。
RDS优化
rds_optimization
- 分析RDS实例以进行优化。
rds_idle
- 识别闲置的RDS实例。
rds_report
- 生成RDS优化报告。
Lambda优化
lambda_optimization
- 分析Lambda函数以进行优化。
lambda_unused
- 识别未使用的Lambda函数。
lambda_report
- 生成Lambda优化报告。
综合分析
comprehensive_analysis
- 多服务成本分析。
其他工具
list_cur_reports
- 列出S3中的成本和使用报告。
get_trusted_advisor_checks
- 获取可信顾问建议。
get_performance_insights_metrics
- 获取RDS性能洞察数据。
🔧 技术细节
安全与权限 - 最小权限原则
MCP工具需要特定的AWS权限才能正常工作:
- 创建只读IAM角色 - 限制大语言模型(LLM)代理修改AWS资源,防止意外的创建、更新或删除操作。
- 启用CloudTrail - 跟踪你的AWS账户中的API活动,用于安全监控。
- 遵循最小权限原则 - 仅为所需服务授予必要的读取权限(Describe*、List*、Get*)。
以下是一个仅包含列出、读取和描述操作的IAM策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cost-optimization-hub:ListEnrollmentStatuses",
"cost-optimization-hub:ListRecommendations",
"cost-optimization-hub:GetRecommendation",
"cost-optimization-hub:ListRecommendationSummaries",
"ce:GetCostAndUsage",
"ce:GetCostForecast",
"compute-optimizer:GetEC2InstanceRecommendations",
"compute-optimizer:GetEBSVolumeRecommendations",
"compute-optimizer:GetLambdaFunctionRecommendations",
"ec2:DescribeInstances",
"ec2:DescribeVolumes",
"rds:DescribeDBInstances",
"lambda:ListFunctions",
"cloudwatch:GetMetricStatistics",
"s3:ListBucket",
"s3:ListObjectsV2",
"support:DescribeTrustedAdvisorChecks",
"support:DescribeTrustedAdvisorCheckResult",
"pi:GetResourceMetrics"
],
"Resource": "*"
}
]
}
故障排除
常见问题
- 成本优化中心无法工作
python3 diagnose_cost_optimization_hub_v2.py
- 未找到指标
- 确保资源至少已运行14天。
- 验证CloudWatch指标已启用。
- 检查你分析的区域是否正确。
- 权限错误
- 验证IAM权限是否正确应用。
- 检查AWS凭证配置。
- 确保在AWS控制台中启用了成本优化中心。
- 导入错误
python3 -c "import boto3, mcp; print('Dependencies OK')"
获取帮助
- 查看RUNBOOKS_GUIDE.md以获取详细的使用说明。
- 运行诊断脚本:
python3 diagnose_cost_optimization_hub_v2.py
。
- 运行集成测试:
python3 test_runbooks.py
。
🧩 附加MCP
附加AWS定价MCP服务器可用于访问实时AWS定价信息并提供成本分析功能。
附加AWS定价MCP服务器仓库
"通过将CDK与我的AWS账户堆栈集的实际支出进行比较来审查它。相应地为应用程序提出成本优化建议"
🎯 主要优势
- 即时节省成本 - 识别可删除的未使用资源。
- 合理调整机会 - 优化过度配置的资源。
- 真实指标分析 - 使用实际的CloudWatch数据。
- 可操作的报告 - 提供带有成本估算的明确建议。
- 全面覆盖 - 分析EC2、EBS、RDS、Lambda等多种资源。
- 易于集成 - 与Amazon Q CLI无缝协作。
📈 预期效果
CFM提示成本优化服务器可以帮助你:
- 平均识别成本节省机会。
- 找到每月耗费数百美元的未使用资源。
- 合理调整过度配置的实例,以实现最佳性能/成本比。
- 通过卷类型建议优化存储成本。
- 消除无业务价值的闲置资源。
🤝 贡献
我们欢迎贡献!请遵循以下贡献指南:
- 分叉仓库。
- 创建功能分支。
- 进行更改。
- 为新功能添加测试。
- 提交拉取请求。
📄 许可证
本项目采用MIT许可证 - 详情请参阅LICENSE文件。