mcpField
A
AWS MCP Server

AWS MCP Server

ローカル
github.com/Rupeebwクラウド・インフラ080 週間前に更新

AWS MCP Server について

AWS MCP Serverは、AWS CLIに似た認証情報やプロファイル設定でAWSアカウントに接続します。REST APIを通じてS3、EC2、Lambdaを操作したいユーザー向けです。

主な機能

  1. 01AWS認証情報で接続
  2. 02プロファイルによる認証設定
  3. 03S3バケットとオブジェクトの管理
  4. 04EC2インスタンスの確認と操作
  5. 05Lambda関数の管理と実行
  6. 06漏えいの可能性があるシークレットの検査

活用シーン

  1. 01S3オブジェクトの一覧表示やアップロード
  2. 02EC2インスタンスの起動や停止
  3. 03Lambda関数の確認や実行
  4. 04コードベース内のシークレット候補の確認

MCP 対応

MCPサーバーとされていますが、READMEはREST APIエンドポイントを説明しており、MCPクライアント向けに公開するツールや機能は明記されていません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

AWS MCP サーバー

AWS CLI と同様に AWS アカウントに接続するサーバーです。

特徴

  • 認証情報を使用して AWS アカウントに接続
  • 複数の AWS サービスに対応
  • AWS CLI と同様の認証情報管理
  • プロファイルベースの設定

フォルダー構成

src/aws-mcp-server/
├── .env.example           # Example environment variables
├── .gitignore             # Git ignore file
├── README.md              # Documentation
├── package.json           # Project dependencies
└── src/                   # Source code
    ├── config/            # Configuration files
    │   └── aws-config.js  # AWS SDK configuration
    ├── core/              # Core functionality (empty for now)
    ├── index.js           # Main entry point
    ├── services/          # AWS service implementations
    │   ├── ec2.js         # EC2 service endpoints
    │   ├── lambda.js      # Lambda service endpoints
    │   └── s3.js          # S3 service endpoints
    └── utils/             # Utility functions
        ├── logger.js      # Logging utility
        └── session-manager.js # AWS session management

セットアップ

  1. 依存関係をインストールします。
npm install
  1. AWS 認証情報を設定します。

    • .env.example を基に .env ファイルを作成します
    • または、~/.aws/credentials にある AWS 認証情報ファイルを使用します
  2. シークレットのコミットを防ぐため、Git フックを設定します。

./scripts/setup-git-hooks.sh
  1. サーバーを起動します。
npm start

設定

サーバーでは、AWS 認証情報を複数の方法で設定できます。

  1. 環境変数
  2. AWS 認証情報ファイル(~/.aws/credentials)
  3. AWS 設定ファイル(~/.aws/config)
  4. インスタンスプロファイル(EC2 で実行する場合)
一時認証情報

一時的な AWS 認証情報(Access Key ID が 'ASIA' で始まるもの)を使用する場合は、.env ファイルにセッショントークンも含めてください。

AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key
AWS_SESSION_TOKEN=your_session_token
AWS_REGION=your_region

セキュリティ

このプロジェクトには、認証情報が誤って漏えいするのを防ぐためのセキュリティ対策がいくつか含まれています。

  1. .gitignore:.env ファイル、キー、証明書、その他の機密ファイルを除外するように設定されています
  2. Git フック:コードベースに潜在的なシークレットがないか確認する pre-commit フック
  3. シークレットチェッカー:ハードコードされた可能性のあるシークレットをスキャンするスクリプト

シークレットのチェックを手動で実行するには:

./scripts/check-secrets.sh

使用方法

このサーバーは、AWS サービスとやり取りするための REST API を公開します。

S3 操作
  • GET /api/s3/buckets - すべての S3 バケットを一覧表示
  • GET /api/s3/buckets/:bucket/objects - バケット内のオブジェクトを一覧表示
  • POST /api/s3/buckets/:bucket/objects - バケットにオブジェクトをアップロード
  • DELETE /api/s3/buckets/:bucket/objects/:key - バケットからオブジェクトを削除
EC2 操作
  • GET /api/ec2/instances - すべての EC2 インスタンスを一覧表示
  • GET /api/ec2/instances/:instanceId - EC2 インスタンスの詳細を取得
  • POST /api/ec2/instances/:instanceId/start - EC2 インスタンスを起動
  • POST /api/ec2/instances/:instanceId/stop - EC2 インスタンスを停止
Lambda 操作
  • GET /api/lambda/functions - すべての Lambda 関数を一覧表示
  • GET /api/lambda/functions/:functionName - Lambda 関数の詳細を取得
  • POST /api/lambda/functions/:functionName/invoke - Lambda 関数を呼び出す
  • PATCH /api/lambda/functions/:functionName/configuration - Lambda 関数の設定を更新
AWS MCP サーバーとのやり取り方法:
  1. コマンドラインから curl を使用する場合:

    # List S3 buckets
    curl http://localhost:3000/api/s3/buckets
    
    # List EC2 instances
    curl http://localhost:3000/api/ec2/instances
    
    # List Lambda functions
    curl http://localhost:3000/api/lambda/functions
    
  2. Postman などの REST クライアントを使用する場合:

  3. ウェブブラウザーを使用する場合(GET リクエストのみ):

  4. フロントエンドアプリケーションを構築する場合:

    • このサーバーに API 呼び出しを行うフロントエンドアプリケーションを作成できます
    • AWS Management Console のような GUI を利用できるようになります
AWS 認証情報のトラブルシューティング:

AWS 認証情報に問題がある場合は、次の方法をお試しください。

  1. 一時認証情報(Access Key が ASIA で始まるもの)の場合:

    • .env ファイルに AWS_SESSION_TOKEN も含めてください
    • これらの認証情報は通常、数時間後に有効期限が切れます
  2. 長期認証情報(Access Key が AKIA で始まるもの)を使用する場合:

    • セッショントークンは必要ありません
    • これらの認証情報の取り扱いには注意し、バージョン管理に決してコミットしないでください
  3. AWS CLI プロファイルを使用する場合:

    • AWS CLI を設定済みの場合は、プロファイルを使用できます。
    AWS_PROFILE=your-profile-name
    
    • .env から AWS_ACCESS_KEY_ID と AWS_SECRET_ACCESS_KEY を削除します
  4. EC2 で実行する場合は IAM ロールを使用する:

    • IAM ロールを設定した EC2 インスタンスにデプロイする場合、認証情報を指定する必要はありません

開発

npm run dev

テスト

npm test

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。