mcpField
A
AWS Trusted Advisor MCP サーバー

AWS Trusted Advisor MCP サーバー

本地服务
github.com/enomoto11云与基础设施078 周前更新

关于 AWS Trusted Advisor MCP サーバー

面向 AWS 运维人员的 MCP 服务,利用 Trusted Advisor 检查结果提出资源优化建议。它覆盖 EC2、EBS、IAM 和 S3,且仅给出建议,不会直接修改环境。

主要功能

  1. 01识别低利用率 EC2 并建议停止
  2. 02建议为 EBS 卷创建快照
  3. 03检测公开的 IAM 密钥并建议禁用
  4. 04识别未启用版本控制的 S3 桶

适用场景

  1. 01检查开发环境中低利用率的 EC2 实例
  2. 02找出需要备份的 EBS 卷
  3. 03审查公开的 IAM 访问密钥
  4. 04定位未启用版本控制的 S3 桶

MCP 相关

作为 MCP 服务,它向客户端提供基于 AWS Trusted Advisor 检查结果的资源分析和优化建议工具。它不会实际执行建议的更改。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

AWS Trusted Advisor MCP 服务

本项目提供一个利用 AWS Trusted Advisor 功能的 MCP(多模态对话处理)服务。它会根据 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. 使用环境变量

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

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. 在左侧菜单中选择“Extensions”或“扩展”
  4. 找到并选择“MCP”部分
  5. 点击“Add MCP”或“添加 MCP”按钮
  6. 输入以下信息:
    • Name:Trusted Advisor
    • URL: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. 从列表中选择“Trusted Advisor”
  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": {}
  }'
建议的格式

此工具会针对每个资源提供包含以下信息的建议:

  • recommendedAction:应执行的 AWS CLI 命令
  • terraformExample:适用于由 IaC 管理的资源的 Terraform 代码示例
  • managedWarning:资源由 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 许可证 发布。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。