AWS云元数据自动化处理框架

一个基于MCP协议的自动化框架,用于安全地检索和处理AWS云元数据,包括成本、使用情况和服务级别洞察。

  • by MONISH-JODHA
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 monish-jodha/mcp-client-server

使用说明

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。