enomoto11
MCP Serverenomoto11public

aws trusted advisor mcp server

AWS Trusted Advisor MCP Server - 低利用率EC2インスタンスの停止やEBSスナップショットの作成など、AWS環境の最適化を提案するツール

Repository Info

0
Stars
0
Forks
0
Watchers
0
Issues
TypeScript
Language
-
License

About This Server

AWS Trusted Advisor MCP Server - 低利用率EC2インスタンスの停止やEBSスナップショットの作成など、AWS環境の最適化を提案するツール

Model Context Protocol (MCP) - This server can be integrated with AI applications to provide additional context and capabilities, enabling enhanced AI interactions and functionality.

Documentation

AWS Trusted Advisor 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. 左側のメニューから「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ライセンス の下で公開されています。

Quick Start

1

Clone the repository

git clone https://github.com/enomoto11/aws-trusted-advisor-mcp-server
2

Install dependencies

cd aws-trusted-advisor-mcp-server
npm install
3

Follow the documentation

Check the repository's README.md file for specific installation and usage instructions.

Repository Details

Ownerenomoto11
Repoaws-trusted-advisor-mcp-server
LanguageTypeScript
License-
Last fetched8/10/2025

Recommended MCP Servers

💬

Discord MCP

Enable AI assistants to seamlessly interact with Discord servers, channels, and messages.

integrationsdiscordchat
🔗

Knit MCP

Connect AI agents to 200+ SaaS applications and automate workflows.

integrationsautomationsaas
🕷️

Apify MCP Server

Deploy and interact with Apify actors for web scraping and data extraction.

apifycrawlerdata
🌐

BrowserStack MCP

BrowserStack MCP Server for automated testing across multiple browsers.

testingqabrowsers

Zapier MCP

A Zapier server that provides automation capabilities for various apps.

zapierautomation