使用说明
MCP自动化框架
一个自动化框架,使用MCP(模型上下文协议)来简化MCP服务器API和MCP客户端之间的安全数据交换,用于AWS云元数据检索和处理。
概述
该框架支持通过安全、经过身份验证的请求-响应模型从AWS帐户自动检索和处理云元数据,包括成本、使用情况和服务级别见解。
建筑
MCP Client → API Gateway → Lambda Function (MCP Server) → AWS Services
- MCP客户端:发送经过身份验证的AWS元数据请求
- API网关:通过适当的身份验证将请求路由到Lambda
- MCP服务器:处理请求和查询AWS服务
- AWS服务:成本资源管理器、CloudWatch、EC2、S3、RDS元数据
核心文件
1.MCP服务器(mcp_server.py)
目的:处理AWS元数据查询的核心服务器
主要特点:
- 使用基于方法的路由处理MCP请求
- 与AWS Cost Explorer集成以进行成本分析
- 检索CloudWatch指标以进行使用情况监控
- 从EC2、S3、RDS收集服务见解
- 包括使用Bedrock Claude 3 Haiku的人工智能分析
方法:
get_cost_data:检索指定时间段内的AWS成本数据get_usage_metrics:获取服务的CloudWatch使用指标get_service_insights:收集服务级别信息并计数get_ai_analysis:提供基于人工智能的成本优化建议
2.MCP客户端(mcp_client.py)
目的:通过API网关向MCP服务器发送请求的简单客户端
主要特点:
- 干净的HTTP请求处理和错误报告
- 简化的构造函数(只需要服务器URL)
- 常见操作的便利方法
- 无需身份验证(由API网关处理)
方法:
send_request:API调用的核心方法get_cost_analysis:成本数据检索包装get_usage_metrics:使用指标的包装get_service_insights:服务洞察的包装
3.自动化框架(automation_framework.py)
目的:编排预定的自动化任务
主要特点:
- 使用可配置的调度
schedule图书馆 - 结果存储和记录
- 多个指标的批量操作
- 一次性执行测试
运营:
run_cost_analysis:日常成本分析自动化run_usage_monitoring:定期收集使用指标run_service_audit:每周服务洞察审计schedule_automation:连续计划执行
4.Lambda处理程序(lambda_handler_simple.py)
目的:无服务器MCP服务器部署的AWS Lambda入口点
主要特点:
- 简化的处理程序,无需身份验证(由API网关处理)
- JSON请求/响应处理
- 错误处理和HTTP状态代码
- 与MCP服务器类集成
配置文件
MCP自动化框架
一个自动化框架,使用MCP(模型上下文协议)来简化MCP服务器API和MCP客户端之间的安全数据交换,用于AWS云元数据检索和处理。
概述
该框架支持通过安全、经过身份验证的请求-响应模型从AWS帐户自动检索和处理云元数据,包括成本、使用情况和服务级别见解。
建筑
MCP Client → API Gateway → Lambda Function (MCP Server) → AWS Services
- MCP客户端:发送经过身份验证的AWS元数据请求
- API网关:通过适当的身份验证将请求路由到Lambda
- MCP服务器:处理请求和查询AWS服务
- AWS服务:成本资源管理器、CloudWatch、EC2、S3、RDS元数据
核心文件
1.MCP服务器(mcp_server.py)
目的:处理AWS元数据查询的核心服务器
主要特点:
- 使用基于方法的路由处理MCP请求
- 与AWS Cost Explorer集成以进行成本分析
- 检索CloudWatch指标以进行使用情况监控
- 从EC2、S3、RDS收集服务见解
- 包括使用Bedrock Claude 3 Haiku的人工智能分析
方法:
get_cost_data:检索指定时间段内的AWS成本数据get_usage_metrics:获取服务的CloudWatch使用指标get_service_insights:收集服务级别信息并计数get_ai_analysis:提供基于人工智能的成本优化建议
2.MCP客户端(mcp_client.py)
目的:通过API网关向MCP服务器发送请求的简单客户端
主要特点:
- 干净的HTTP请求处理和错误报告
- 简化的构造函数(只需要服务器URL)
- 常见操作的便利方法
- 无需身份验证(由API网关处理)
方法:
send_request:API调用的核心方法get_cost_analysis:成本数据检索包装get_usage_metrics:使用指标的包装get_service_insights:服务洞察的包装
3.自动化框架(automation_framework.py)
目的:编排预定的自动化任务
主要特点:
- 使用可配置的调度
schedule图书馆 - 结果存储和记录
- 多个指标的批量操作
- 一次性执行测试
运营:
run_cost_analysis:日常成本分析自动化run_usage_monitoring:定期收集使用指标run_service_audit:每周服务洞察审计schedule_automation:连续计划执行
4.Lambda处理程序(lambda_handler_simple.py)
目的:无服务器MCP服务器部署的AWS Lambda入口点
主要特点:
- 简化的处理程序,无需身份验证(由API网关处理)
- JSON请求/响应处理
- 错误处理和HTTP状态代码
- 与MCP服务器类集成
带Amazon Bedrock的MCP服务器
MCP服务器是AWS Lambda函数,用于处理与AWS相关的任务,如检查成本或监控使用情况。它从AWS服务(如Cost Explorer、CloudWatch、EC2和IAM)收集数据。然后,它使用Claude 3 Haiku或Titan Text等模型将这些数据作为提示发送到亚马逊基岩,以获得有用的人工智能生成的见解。服务器旨在在出现故障时重试,管理流量限制,并在不永久存储任何数据的情况下运行。
基岩调用示例:
响应=bedrock_runtime.invoke_model( body=json.dumps(有效载荷), modelId=“亚马逊.tatin-ext-premier-v1:0”, contentType=“应用程序/json”, accept=“应用程序/json” )
成本概述
Amazon Bedrock根据输入和输出代币的数量收费。对于Titan Text Premier,1000个输入令牌为0.0005美元,1000个输出令牌为0.0015美元。
API网关仅在您使用时收费。在前12个月内,您每月还可以获得100万次免费的API调用。
AWS Lambda根据函数运行的频率、运行的时间和使用的内存量收费。您可以使用AWS计算器估算成本。
安全亮点
API网关控制如何处理请求并限制流量。
Lambda函数只使用它们需要的权限。环境变量可以加密。在VPC中运行有助于保持资源私有。对Lambda函数的访问受到策略的限制。已打开日志记录以进行监控。
由于它是无服务器的,因此没有永远在线的服务器或开放的网络端口。一切都使用CloudWatch进行跟踪和监控。
MCP客户端选项
Amazon Q Developer是唯一内置的MCP客户端。
其他AWS服务,如Lambda、ECS/Fargate、Step Functions和EventBridge,也可以作为MCP客户端工作,但需要手动设置。
对于开发来说,使用Lambda是最简单的。对于生产,建议使用带有API网关的ECS/Fargate。