mcp/aws-pricing-mcp-server提供AWS服务定价和成本估算功能的MCP Server。
什么是MCP Server?
| 属性 | 详情 |
|---|---|
| Docker镜像 | mcp/aws-pricing-mcp-server |
| 作者 | awslabs |
| 仓库 | [***] |
| 属性 | 详情 |
|---|---|
| Dockerfile | [***] |
| Docker镜像构建者 | Docker Inc. |
| Docker Scout健康评分 | !Docker Scout Health Score |
| 验证签名 | COSIGN_REPOSITORY=mcp/signatures cosign verify mcp/aws-pricing-mcp-server --key [***] |
| 许可证 | Apache License 2.0 |
| 工具名称 | 简短描述 |
|---|---|
analyze_cdk_project | 分析CDK项目以识别使用的AWS服务。 |
analyze_terraform_project | 分析Terraform项目以识别使用的AWS服务。 |
generate_cost_report | 基于一个或多个AWS服务的定价数据生成详细的成本分析报告。 |
get_bedrock_patterns | 获取Amazon Bedrock应用程序的架构模式,包括组件关系和成本考虑因素。 |
get_price_list_urls | 获取批量定价数据文件的下载URL。 |
get_pricing | 从AWS Price List API获取详细定价信息,支持可选过滤条件。 |
get_pricing_attribute_values | 获取定价过滤属性的有效值。 |
get_pricing_service_attributes | 获取AWS服务在定价API中可用的可过滤属性。 |
get_pricing_service_codes | 获取Price List API中可用的AWS服务代码。 |
analyze_cdk_project分析CDK项目以识别使用的AWS服务。此工具从CDK构造中动态提取服务信息,不依赖硬编码的服务映射。
| 参数 | 类型 | 描述 |
|---|---|---|
project_path | string | 项目目录路径 |
analyze_terraform_project分析Terraform项目以识别使用的AWS服务。此工具从Terraform资源声明中动态提取服务信息。
| 参数 | 类型 | 描述 |
|---|---|---|
project_path | string | 项目目录路径 |
generate_cost_report基于一个或多个AWS服务的定价数据生成详细的成本分析报告。
此工具需要AWS定价数据,并提供添加详细成本信息的选项。
重要要求:
输出格式选项:
示例用法:
json{ // 必需参数 "pricing_data": { // 应包含从get_pricing获取的定价数据 "status": "success", "service_name": "bedrock", "data": "... 定价信息 ...", "message": "从AWS定价URL检索到bedrock的定价" }, "service_name": "Amazon Bedrock", // 核心参数(常用) "related_services": ["Lambda", "S3"], "pricing_model": "ON DEMAND", "assumptions": [ "标准按需付费定价模型", "未应用缓存或优化", "平均请求大小为4KB" ], "exclusions": [ "区域间数据传输成本", "自定义模型训练成本", "开发和维护成本" ], "output_file": "cost_analysis_report.md", // 或"cost_analysis_report.csv"用于CSV格式 "format": "markdown", // 或"csv"用于CSV格式 // 复杂场景的高级参数 "detailed_cost_data": { "services": { "Amazon Bedrock基础模型": { "usage": "使用Claude 3.5 Haiku处理100万输入令牌和50万输出令牌", "estimated_cost": "80.00***", "free_tier_info": "Bedrock基础模型无免费套餐", "unit_pricing": { "input_tokens": "每1K令牌0.0008***", "output_tokens": "每1K令牌0.0016***" }, "usage_quantities": { "input_tokens": "1,000,000令牌", "output_tokens": "500,000令牌" }, "calculation_details": "0.0008***/1K × 1,000K输入令牌 + 0.0016***/1K × 500K输出令牌 = 80.00***" }, "AWS Lambda": { "usage": "每月6,000次请求,512MB内存", "estimated_cost": "0.38***", "free_tier_info": "前12个月:每月100万次请求免费", "unit_pricing": { "requests": "每100万请求0.20***", "compute": "每GB-秒0.0000166667***" }, "usage_quantities": { "requests": "6,000次请求", "compute": "6,000次请求 × 1秒 × 0.5GB = 3,000 GB-秒" }, "calculation_details": "0.20***/100万 × 0.006百万请求 + 0.0000166667*** × 3,000 GB-秒 = 0.38***" } } }, // 建议参数 - 可直接提供或生成 "recommendations": { "immediate": [ "优化提示工程以减少Claude 3.5 Haiku的令牌使用量", "根据实际查询模式配置知识库OCU", "为常见查询实施响应缓存以减少令牌使用" ], "best_practices": [ "监控OCU利用率指标并根据需要调整容量", "对API调用中重复的上下文使用提示缓存", "对于可预测的工作负载考虑预配置吞吐量" ] } }
| 参数 | 类型 | 描述 |
|---|---|---|
pricing_data | object | 来自AWS定价工具的原始定价数据 |
service_name | string | AWS服务名称 |
assumptions | string 可选 | 成本分析的假设列表 |
detailed_cost_data | string 可选 | 复杂场景的详细成本信息 |
exclusions | string 可选 | 成本分析中排除的项目列表 |
format | string 可选 | 输出格式("markdown"或"csv") |
output_file | string 可选 | 报告文件保存路径 |
pricing_model | string 可选 | 定价模型(例如:"ON DEMAND","Reserved") |
recommendations | string 可选 | 直接建议或生成指导 |
related_services | string 可选 | 相关AWS服务列表 |
get_bedrock_patterns获取Amazon Bedrock应用程序的架构模式,包括组件关系和成本考虑因素。
| 参数 | 类型 | 描述 |
|---|---|---|
ctx | string 可选 | 上下文信息 |
get_price_list_urls获取批量定价数据文件的下载URL。
用途: 访问完整的AWS定价数据集作为可下载文件,用于历史分析和批量处理。
工作流程: 当get_pricing()提供的当前定价不足以满足需求时,使用此工具进行历史定价分析或批量数据处理。
参数:
返回: 包含不同格式下载URL的字典:
使用场景:
文件处理:
tail -n +7 pricing.csv | grep "t3.medium"过滤数据| 参数 | 类型 | 描述 |
|---|---|---|
region | string | AWS区域(例如:"us-east-1","eu-west-1") |
service_code | string | AWS服务代码(例如:"AmazonEC2","AmazonS3","AmazonES") |
effective_date | string 可选 | 定价生效日期,格式为"YYYY-MM-DD HH:MM"(默认:当前时间戳) |
get_pricing从AWS Price List API获取详细定价信息,支持可选过滤条件。
参数:
必须遵循的工作流程:
步骤1:发现可用选项
pythonservice_codes = get_pricing_service_codes() # 查找正确的服务(已知时可跳过) attributes = get_pricing_service_attributes('AmazonEC2') # 发现可过滤维度 attribute_values = get_pricing_attribute_values('AmazonEC2', 'memory') # 获取过滤的有效值
步骤2:构建精确过滤器
python# 仅使用步骤1中发现的值 filters = [ {"Field": "memory", "Value": ["8 GiB", "16 GiB", "32 GiB"], "Type": "ANY_OF"}, # 多个选项 {"Field": "instanceType", "Value": "m5", "Type": "CONTAINS"}, # 模式匹配 {"Field": "instanceType", "Value": ["t2", "m4"], "Type": "NONE_OF"} # 排除旧类型 ]
步骤3:执行查询
pythonpricing = get_pricing('AmazonEC2', 'us-east-1', filters)
过滤类型:
{"Field": "instanceType", "Value": "m5.large"}{"Field": "memory", "Value": ["8 GiB", "16 GiB"], "Type": "ANY_OF"}{"Field": "instanceType", "Value": "m5", "Type": "CONTAINS"}{"Field": "instanceType", "Value": ["t2", "m4"], "Type": "NONE_OF"}重要:ANY_OF过滤值限制
["8 GiB", "16 GiB", "32 GiB", "64 GiB", "96 GiB", "128 GiB", ...](过长)["8 GiB", "16 GiB", "32 GiB", "36 GiB", "48 GiB"](目标明确的列表)常见使用场景:
成本优化 - 穷尽式最低优先方法: 当用户询问"最低价格"、"最便宜"或成本优化时
输出选项(响应大小和性能控制):
{"pricing_terms": ["OnDemand"], "product_attributes": ["instanceType", "location", "memory"]}关键要求:
示例使用场景:
1. 成本优化的多属性过滤(正确方法):
python# 查找满足最低要求(≥8 GiB内存,≥30 GB存储)的最便宜EC2实例 # 合格层级的穷尽枚举 - 每个都是互斥的 filters = [ {"Field": "memory", "Value": ["8 GiB", "16 GiB", "32 GiB"], "Type": "ANY_OF"}, # 所有≥8GB的层级,直至合理限制 {"

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务