AWS Trusted Advisor MCP服务器

基于AWS Trusted Advisor的MCP服务器,提供低利用率EC2实例停止、EBS快照创建等优化建议,适用于IaC管理环境。

  • by enomoto11
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 enomoto11/aws-trusted-advisor-mcp-server

使用说明

AWS可信顾问MCPサーバー

此项目包括:AWS Trusted Advisor利用机能MCP (Multimodal Conversational Processing) 提供服务器。AWS Trusted Advisor查看项目中可用的所有族EC2停止实例EBS建议进行建议的更改,例如创建快照。重要信息:此工具不实际更改IaC中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。

存储库URL: https://github.com/enomoto11/aws-trusted-advisor-mcp-server

机能

  • 低利用率EC2停止实例建议: Trusted Advisor将条目添加到文档注册表EC2确定实例并根据标记提出停止建议
  • EBS创建快照建议:备份不足EBS建议创建卷快照
  • 建议禁用已发布的访问密钥:已发布IAM检测访问密钥并建议禁用
  • S3启用时段版本化建议:未启用版本化S3确定时段并建议启用版本化

安装,安装

前提条件

  • Node.js 14以上
  • npm 在工作空间的边缘yarn
  • AWS 帐户和IAM用户(需要对Trusted Advisor和相关服务的访问权限)
  • 在工作空间的边缘Docker 打开Docker Compose (在容器中运行时)

安装

# リポジトリをクローン
git clone https://github.com/enomoto11/aws-trusted-advisor-mcp-server.git
cd aws-trusted-advisor-mcp-server

# 依存関係のインストール
npm install

# 開発モードで実行
npm run dev

Docker使用执行

项目是Docker也可以作为容器运行。

# イメージをビルドして起動
docker-compose up -d

# ログの確認
docker-compose logs -f

# コンテナの停止
docker-compose down

AWS设置凭据

这个项目AWS SDK中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积AWS必须设置凭据:

1. .env 使用文件

在项目根目录中 .env 创建文件并添加以下内容:

AWS_ACCESS_KEY_ID=あなたのアクセスキーID
AWS_SECRET_ACCESS_KEY=あなたのシークレットアクセスキー
AWS_SESSION_TOKEN=あなたのセッショントークン(必要な場合)
AWS_REGION=us-east-1

2. AWS使用配置文件

AWS CLI如果已安装,请使用以下命令设置凭据:

aws configure

3.如何使用环境变量

直接在壳中设置环境变量:

export AWS_ACCESS_KEY_ID=あなたのアクセスキーID
export AWS_SECRET_ACCESS_KEY=あなたのシークレットアクセスキー
export AWS_SESSION_TOKEN=あなたのセッショントークン(必要な場合)
export AWS_REGION=us-east-1

重要: Trusted Advisor API来修改标记元素的显示属性IAM用户必须具有相应的权限。至少,起码 support:DescribeTrustedAdvisorChecks 单击功能区上 support:DescribeTrustedAdvisorCheckResult 需要访问许可。

Cursor中的设置和使用

Cursor要在编辑器中使用此工具:

1. MCP服务器设置

  1. 本地克隆此存储库
  2. 安装从属关系并启动服务器
    npm install
    npm run dev
    
  3. 服务器 http://localhost:3000 中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积

2. Cursor MCP插件设置

  1. Cursor打开编辑器
  2. 打开设置画面(macOS中 Cmd+,、Windows那么,那么 Ctrl+,)
  3. 从左侧菜单中选择“扩展”或“扩展”
  4. 「MCP」查找并选择节
  5. 「Add MCP」或者单击“添加MCP”按钮
  6. 输入以下信息:
    • 姓名: Trusted Advisor
    • 网址: http://localhost:3000(直接执行时)或 http://localhost:3001(Docker执行容器时)
  7. 「Add」或单击“添加”按钮保存

3. Cursor在中使用

  1. 打开命令选项板(在macOS中 Cmd+Shift+P、Windows那么,那么 Ctrl+Shift+P)
  2. MCP: Switch MCP Server 的双曲正切值
  3. 从列表中选择可信顾问
  4. 现在AI和助手聊天Trusted Advisor中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积
  5. 聊天时“低利用率”EC2请检查实例“等MCP通过服务器AWS显示环境分析结果

4.聊天提示示例

  • “低利用率EC2请检查实例,并提出要停止的实例。“
  • “需要备份EBS请扫描卷,告诉我需要创建快照。“
  • “公开的IAM请确认没有访问密钥“
  • “未启用版本化”S3请检查时段“

使用方法

服务器启动后,以下端点可用:

  • GET /:检查服务器状态
  • GET /tools:获取可用工具列表
  • POST /execute:运行工具

工具示例

以下示例使用本地运行时的端口3000。Docker容器运行时请用端口3001替换。

低利用率EC2停止实例建议

curl -X POST http://localhost:3000/execute \
  -H "Content-Type: application/json" \
  -d '{
    "toolName": "low_utilization_ec2_instances",
    "parameters": {
      "region": "us-east-1",
      "tagKey": "environment",
      "tagValue": "dev"
    }
  }'

EBS创建快照建议

curl -X POST http://localhost:3000/execute \
  -H "Content-Type: application/json" \
  -d '{
    "toolName": "ebs_snapshots",
    "parameters": {
      "region": "all"
    }
  }'

建议禁用已发布的访问密钥

curl -X POST http://localhost:3000/execute \
  -H "Content-Type: application/json" \
  -d '{
    "toolName": "exposed_access_keys",
    "parameters": {}
  }'

S3启用时段版本化建议

curl -X POST http://localhost:3000/execute \
  -H "Content-Type: application/json" \
  -d '{
    "toolName": "s3_bucket_versioning",
    "parameters": {}
  }'

建议格式

该工具为每个资源提供了包含以下信息的建议:

  • 推荐行动:应执行AWS CLI命令
  • terraformExample: IaC对较大场景进行渲染期间已观察到该故障Terraform代码示例
  • 管理警告:资源IaC中所述的工具,调整墙的布局和几何形状

例:

{
  "recommendations": [
    {
      "instanceId": "i-0123456789abcdef0",
      "region": "us-east-1",
      "recommendedAction": "aws ec2 stop-instances --instance-ids i-0123456789abcdef0 --region us-east-1",
      "terraformExample": "# Terraformの例:\nresource \"aws_instance\" \"0123456789abcdef0\" {\n  # 他の設定はそのままに\n  instance_id = \"i-0123456789abcdef0\"\n  # インスタンスを停止状態に設定\n  instance_initiated_shutdown_behavior = \"stop\"\n}",
      "managedWarning": "※注意: このインスタンスは terraform:managed=true で管理されています。変更はIaCツールを通じて行ってください。"
    }
  ]
}

添加自定义工具

要添加新工具:

  1. src/config.ts 添加工具定义
  2. src/tools.ts 添加实施
  3. 实施 implementTools 注册对象

许可证

这个项目 MIT许可证 的明细栏样式中定义的设置。