Token导航 LogoToken导航TokenDH.com
Cost Explorer Only logo
运维云端未说明官方级别未说明来源级核验

Cost Explorer Only

MCP Server

一个用于分析AWS成本和使用情况的服务,支持多账户角色假设和EKS部署。

工具数

26

提示词数

0

GitHub Stars

0

资源数

0
成本优化Python云端部署

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

EmmaChillonB

提供方

EmmaChillonB

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

成本浏览器MCP服务器

MCP服务器通过AWS Cost Explorer API分析成本和使用AWS,设计用于 使用POD身份在EKS中部署 y 多重角色概述.

目录

______________________________________________________________________

功能

AWS的成本分析和使用

  • 按服务、地区和其他维度分列的详细成本明细
  • 查询特定时间段的历史成本数据
  • 按维度、标签和成本类别划分的成本过滤

期间间成本比较

  • 使用的功能 成本比较 de AWS成本资源管理器
  • 两个时期之间的成本比较,以确定变化和趋势
  • 分析主要成本因素(前10名),以了解增减

未来成本预测

  • 根据历史使用模式生成预测
  • 具有置信区间的预测(80%或95%)
  • 每日和每月预测的粒度

多帐户体系结构

  • 支持具有不同IAM角色的多个AWS帐户
  • 使用LRU缓存管理线程安全会话(最多300个会话)
  • 在令牌到期前5分钟自动刷新令牌
  • 重复执行并发请求(每个帐户只有一个STS调用)

______________________________________________________________________

认证体系结构

如何运作

该服务器的设计是在 EKS,其中POD通过 EKS吊舱标识,对于每个请求,它根据 client_id.

认证流程:

  1. POD通过EKS POD标识获得基本凭据
  2. 客户端配置从 AWS机密管理器 (在生产中)或从文件 clients.json 当地(发展中)
  3. 对于每个工具请求:

- 正在发送 client_id - 服务器搜索 role_arn 在客户端配置中 - 服务器调用 sts:AssumeRole 走向相应角色 - 创建成本管理器(CE)客户端并缓存到令牌到期 - 令牌在到期前自动刷新

加载客户端配置

服务器按以下顺序优先考虑源:

  1. AWS机密管理器 --si-la变量 CLIENTS_CONFIG_SECRET 定义后,从指定的秘密加载设置。配置在内存中缓存5分钟(可通过 CLIENTS_CONFIG_CACHE_TTL)哦。当更新机密时,服务器会在下一个缓存周期中自动检测到更改,而无需重新启动。
  1. 本地文件 --si CLIENTS_CONFIG_SECRET 没有定义,请搜索 clients.json 在指定的路线上 CLIENTS_CONFIG_PATH 或在与模块相关的默认位置。文件在更改时自动重新加载(由MTIME检测)。

先决条件

  • EKS 启用POD标识
  • 角色基地(吊舱角色):通过POD标识分配给POD的IAM角色,具有以下权限:

- sts:AssumeRole 关于每个帐户角色的RNA - secretsmanager:GetSecretValue 关于配置的秘密

  • 每个目标帐户中的角色:允许由基本角色承担

对比度管理

服务器安全地处理并发请求:

  • 缓存线程安全:所有缓存都使用锁来防止竞争条件
  • 软饮料重复:如果多个请求需要刷新同一令牌,则只进行一次STS调用
  • Eviccion LRU:最多300个缓存会话,自动删除使用最少的会话

需要IAM许可

罗尔基地 (通过POD标识识别POD):

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": [
        "arn:aws:iam::ACCOUNT_ID_1:role/mcp-cost-optimizer",
        "arn:aws:iam::ACCOUNT_ID_2:role/mcp-cost-optimizer"
      ]
    },
    {
      "Effect": "Allow",
      "Action": "secretsmanager:GetSecretValue",
      "Resource": "arn:aws:iam::BASE_ACCOUNT_ID:secret:mcp-cost-optimizer/clients"
    }
  ]
}

每个目标帐户中的角色 (mcp-cost-optimizer):

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ce:GetCostAndUsage",
        "ce:GetCostForecast",
        "ce:GetDimensionValues",
        "ce:GetTags",
        "ce:GetCostAndUsageComparisons",
        "ce:GetCostComparisonDrivers",
        "ce:GetReservationUtilization",
        "ce:GetReservationCoverage",
        "ce:GetReservationPurchaseRecommendation",
        "ce:GetSavingsPlansCoverage",
        "ce:GetSavingsPlansUtilization",
        "ce:GetSavingsPlansPurchaseRecommendation",
        "cloudwatch:GetMetricStatistics",
        "cloudwatch:GetMetricData",
        "cloudwatch:ListMetrics",
        "ec2:DescribeRegions",
        "ec2:DescribeInstances",
        "ec2:DescribeVolumes",
        "ec2:DescribeSnapshots",
        "ec2:DescribeNatGateways",
        "ec2:DescribeAddresses",
        "elasticloadbalancing:DescribeLoadBalancers",
        "elasticloadbalancing:DescribeTargetGroups",
        "elasticloadbalancing:DescribeTargetHealth",
        "rds:DescribeDBInstances",
        "rds:DescribeDBRecommendations",
        "s3:ListAllMyBuckets",
        "s3:GetBucketLocation",
        "s3:GetLifecycleConfiguration",
        "s3:GetBucketVersioning"
      ],
      "Resource": "*"
    }
  ]
}

信任策略 在每个目标帐户角色中:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::BASE_ACCOUNT_ID:role/mcp-cost-optimizer-CLUSTER_ID"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

______________________________________________________________________

配置

多帐户配置(clients.json)

服务器使用 client_id 寻找要扮演的角色。配置可以在AWS Secrets Manager或本地文件中。

配置示例

{
  "clients": {
    "cuenta-produccion": {
      "role_arn": "arn:aws:iam::ACCOUNT_ID_1:role/mcp-cost-optimizer",
      "account_id": "ACCOUNT_ID_1",
      "account_type": "payer",
      "description": "Cuenta de gestion (payer)"
    },
    "cuenta-desarrollo": {
      "role_arn": "arn:aws:iam::ACCOUNT_ID_2:role/mcp-cost-optimizer",
      "account_id": "ACCOUNT_ID_2",
      "account_type": "linked",
      "payer_id": "cuenta-produccion",
      "description": "Cuenta de desarrollo (linked)"
    }
  }
}

更新生产中的配置

aws secretsmanager put-secret-value \
  --secret-id "mcp-cost-optimizer/clients" \
  --secret-string file://clients.json \
  --region eu-west-1 --profile 

服务器在未来5分钟内自动检测到更改,无需重新启动。

环境变量

变量必需默认值描述
CLIENTS_CONFIG_SECRET没有\*-带有客户设置的AWS Secrets Manager中的RNA或Secret名称
CLIENTS_CONFIG_PATH没有\*-文件路径 clients.json (alternativa当地的一个秘密经理)
CLIENTS_CONFIG_CACHE_TTL没有300从Secrets Manager缓存客户端配置的秒数
AWS_REGION没有us-east-1默认区域AWS
FASTMCP_LOG_LEVEL没有WARNINGNivel日志删除(错误、警告、信息、调试)
VALIDATE_FILTER_VALUES没有false启用AWS调用以验证过滤器
MCP_TRANSPORT没有stdio运输方式: stdio, sse,o streamable-http
MCP_HOST没有0.0.0.0 (容器)SSE/HTTP传输的侦听主机
MCP_PORT没有8000SSE/HTTP传输的侦听端口
MCP_MOUNT_PATH-SSE/HTTP传输的可选装载路径

\*需要两者之一: CLIENTS_CONFIG_SECRET (生产)或 CLIENTS_CONFIG_PATH /本地文件(开发)。

______________________________________________________________________

可用的工具

Cost Explorer MCP服务器提供以下工具:

工具

工具描述
get_today_date获取确定相关数据的当前日期
list_active_sessions列出所有活动的成本管理器会话
close_session关闭特定会话并释放资源

成本查询

工具描述
get_dimension_values获取特定维度(例如服务、区域)的可用值
get_tag_values获取标签键的可用值
get_cost_and_usage使用过滤和分组选项恢复AWS的成本和使用数据
get_cost_trend_with_anomalies6个月趋势+在一次通话中检测异常

分析比较

工具描述
get_cost_and_usage_comparisons比较两个时期之间的成本,以确定变化和趋势
get_cost_comparison_drivers分析导致期间之间成本变化的因素(前10名)
get_cost_forecast根据历史使用模式生成成本预测
get_savings_commitments当前存储计划和保留实例、覆盖范围和使用

库存

工具描述
describe_ec2_instancesEC2实例的紧凑信息
list_ec2_regions_with_instances有实例的区域(运行/停止)
describe_ebs_volumes带有孤儿检测的EBS卷
describe_ebs_snapshots带有孤儿检测的EBS快照
describe_rds_instancesRDS实例
describe_load_balancers负载平衡器
describe_nat_gatewaysNAT网关
describe_elastic_ips弹性IP
list_s3_buckets带有生命周期标志的桶S3

使用

工具描述
get_ec2_utilization通过CloudWatch使用EC2实例的CPU
get_rds_utilization 使用 RDS。
get_ebs_utilization 使用 EBS。
get_elb_utilization 使用 Load Balancer。
get_nat_gateway_utilization 使用 NAT Gateway。
get_multi_resource_utilization按使用桶分组的EC2+RDS

使用多帐户

重要:您必须始终通过 client_id 调用工具时。服务器将承担客户端配置的相应角色。

示例: get_cost_and_usage

{
  "client_id": "cuenta-produccion",
  "date_range": {
    "start_date": "2026-01-01",
    "end_date": "2026-01-31"
  },
  "granularity": "MONTHLY",
  "group_by": "SERVICE",
  "metric": "UnblendedCost"
}

______________________________________________________________________

成本验证和优化

验证如何工作

每次对Cost Explorer API的调用都会花费 $0.01。服务器在将请求发送到AWS之前对其进行验证。

本地验证(始终运行,不调用AWS):

  • 日期格式(YYY-MM-DD)
  • 日期范围逻辑(开始前结束)
  • 粒度限制(最多14小时)
  • 尺寸验证(服务、区域等)
  • 过滤器结构验证(AND,OR,NOT运算符)
  • 协议有效性(分组)

AWS验证(可选,默认禁用):

  • 验证维度值是否存在(例如,“Amazon EC2”是有效的服务值)
  • 验证标签值是否存在

成本估算

操作API调用成本
简单成本查询1$0.01
过滤器查询(验证已禁用)1$0.01
过滤查询(启用验证)2+$0.02+
成本比较2$0.02
预测成本10.01美元

______________________________________________________________________

绝望

运输方式

模式描述用例
stdio标准输入/输出本地开发,CLI工具
sse服务器发送HTTP事件客户端web,MCP检查器
streamable-http传输HTTP流媒体推荐用于EKS

地方发展

# Instalar dependencias
uv sync

# Ejecutar con fichero local
CLIENTS_CONFIG_PATH=./clients.json uv run cost-optimizer

构建并推动ECR

aws ecr get-login-password --region eu-west-1 --profile 
 \
  | docker login --username AWS --password-stdin \
    675492141136.dkr.ecr.eu-west-1.amazonaws.com

docker build -t mcp-costoptimizer-aws .
docker tag mcp-costoptimizer-aws:latest \
  675492141136.dkr.ecr.eu-west-1.amazonaws.com/mcp-costoptimizer-aws:latest
docker push \
  675492141136.dkr.ecr.eu-west-1.amazonaws.com/mcp-costoptimizer-aws:latest

在EKS中部署(通过Terraform/Terragrunt)

EKS的部署由REPO管理 innovation-account。需要:

  1. 在秘密管理器中创建秘密(一次):
aws secretsmanager create-secret \
  --name "mcp-cost-optimizer/clients" \
  --secret-string file://clients.json \
  --region eu-west-1 --profile 
  1. 手动创建角色 mcp-cost-optimizer 在每个目标帐户中,具有中指定的权限和信任策略 需要IAM许可.
  1. 应用以下内容 :
cd config/eu-west-1/envs/cost-optimizer
terragrunt run-all apply

MCP将在集群内部提供:

http://mcp.cost-optimizer.svc.cluster.local:8000

______________________________________________________________________

测试

运行单元测试

uv sync --dev
source .venv/bin/activate
pytest tests/ -v -o "addopts="

______________________________________________________________________

使用示例

成本分析

Muestrame los costes de AWS de los ultimos 3 meses agrupados por servicio
Desglosa los costes de S3 por clase de almacenamiento del primer trimestre de 2026
Cuales fueron mis costes de instancias reservadas vs bajo demanda en mayo?

成本比较

Compara mis costes de AWS entre abril y mayo de 2026
Por que aumento mi factura de AWS en junio comparado con mayo?
Que causo el pico en mis costes de S3 el mes pasado?

预测

Haz una prevision de mis costes de AWS para el proximo mes
Cual sera mi factura total de AWS para el resto de 2026?

______________________________________________________________________

许可证

该项目是根据Apache 2.0许可证授权的-有关详细信息,请参阅许可证文件。

目录标签

目录标签

成本优化Python云端部署AWS成本分析本地部署多账户管理EKS部署IAM角色管理

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

26

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明session部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP