Amazon EKS MCP Server

Amazon EKS MCP Server

Amazon EKS MCPサーバーは、生成AIモデルがAWS上でKubernetesクラスターを作成・管理・操作できる専門のMCPサーバーです。標準化された安全で拡張可能なMCPツールを通じて実現します。

Author: awslabs


プロトコルを表示

Amazon EKS MCPサーバーとは?

Amazon EKS MCPサーバーは、標準化されたAPIインターフェイスを提供します。これにより、LLM駆動のエージェントや自動化ツールがAWS Elastic Kubernetes Service (EKS) クラスターやKubernetesリソースをModel Context Protocol (MCP)を通じてシームレスに管理できます。AWS特有の複雑さやKubernetes操作を簡単に発見できるツールの背後に隠して、コードアシスタントやインタラクティブアプリケーションにクラウドネイティブな管理を実現します。

設定方法

  1. 前提条件

    • Python 3.10以上がインストールされていることを確認してください(uvを経由することを推奨します)。
    • EKS、VPC、IAM、CloudFormation、関連サービスを管理するための権限を持つAWS資格情報を設定します(プロファイルまたは環境変数を通じて)。
  2. サーバーのインストール

    • MCPクライアント設定(例:mcp.jsoncline_mcp_settings.json)に次の構成を追加します:
      {
        "awslabs.eks-mcp-server": {
          "command": "uvx",
          "args": ["awslabs.eks-mcp-server@latest"],
          "env": {
            "AWS_PROFILE": "your-aws-profile",
            "AWS_REGION": "us-east-1",
            "FASTMCP_LOG_LEVEL": "ERROR"
          }
        }
      }
      
    • AWS_PROFILEAWS_REGION を適切に調整してください。
  3. 権限とセキュリティ

    • IAM資格情報は、EKS、VPC、CloudFormation、Kubernetes APIアクセスの完全またはスコープ内の管理を許可する必要があります。
    • 必要に応じて、環境変数またはツールパラメータを使用して読み取り専用モードや機密データ制御を構成できます(詳細な設定についてはサーバーのドキュメントを参照)。
  4. サーバーの起動

    • MCPクライアントまたはオーケストレーター(例:Cline、Cursor、Windsurf)が、設定に従ってEKS MCPサーバーを起動します。

使い方

  1. ツールの発見

    • MCP対応クライアントを使って利用可能なEKS MCPツールを一覧表示します(通常は tools/list またはクライアントコマンドパレット経由)。
    • ツールは create_eks_clusterapply_k8s_manifest などの関数のようなコマンドです。
  2. ツールの呼び出し

    • 必要なパラメータで希望するツールを呼び出します(チャットで対話的に、コードアシスタントを通じて、または自動化フローで)。
    • 例:"EKS MCPサーバーを使って、us-east-1で3ノードの 'test-cluster' という新しいEKSクラスターを作成します。"
    • クライアントはツールの引数を求め、権限や承認を検証し、要求されたアクションを実行します。
  3. 監視とフィードバック

    • get_pod_logsget_cloudwatch_metrics などのツールを使用してワークロードを分析し、アプリケーションをトラブルシューティングし、クラスターを監視します。結果は直接AIアシスタントやアプリ内で受け取ります。
  4. セキュリティ制御

    • ワークフローがより高い制御を求める場合、読み取り専用モードを有効にしたり、機密アクションを制限したりします。
  5. 他のMCPサーバーとの統合

    • EKS MCPを利用して、VPC、IAM、CI/CD、データベース、コスト分析のツールと連携させて、エンドツーエンドのクラウドワークフローをオーケストレーションします。

主な機能

  • EKSクラスター管理:Amazon EKSクラスターを作成、構成、更新、削除し、VPCおよびネットワークの設定、CloudFormationのオーケストレーション、ロールアップグレードも含みます。
  • Kubernetesリソースライフサイクル:明確に定義されたツールエンドポイントを使用してKubernetesマニフェストやリソースを適用、更新、リスト、削除します。
  • アプリケーションデプロイ:コンテナ化されたワークロードのマニフェストを生成・デプロイし、パラメータ化やベストプラクティスを取り入れます。
  • 運用サポート:リアルタイムおよび履歴のログ、イベント、クラスターの健康指標にアクセスし、CloudWatchと直接統合します。
  • セキュリティと権限:IAMベースの認証/承認、機密データアクセス制御、およびオプションの読み取り専用操作に対応します。
  • カスタマイズ可能なモード:サーバー設定(例:ロギング、アクセスレベル、自動承認)を構成や環境変数を通じて調整し、ワークフローやコンプライアンス要件に合わせます。

使用例

  • 自動EKSクラスターのプロビジョニング:AIコーディングアシスタントにEKSクラスターのセットアップや解体をDevOpsワークフローやCI/CDパイプラインの一部として可能にします。
  • 宣言的インフラ更新:プロンプト駆動のインターフェイスを使ってKubernetesリソースマニフェストを生成し、適用し、アプリケーションを迅速に繰り返します。
  • マルチステージアプリケーションデプロイ:最小限の手動介入でマイクロサービスやウェブアプリをデプロイ、スケール、ロールバックします。
  • 透明なトラブルシューティング:ポッドログ、イベントストリーム、クラスター/ステータス指標を自然言語やインタラクティブノートブック環境で取得します。
  • トレーニング、デモ、サンドボックス:テスト、デモ、教育目的のためにエフェメラルクラスターやネームスペースをプロビジョニングし、コスト管理のために簡単に解体します。
  • セキュリティを重視した操作:QA、監査、レビューシナリオのための読み取り専用または制限されたモードを採用し、機密の本番リソースの周りにガードレールを確保します。

よくある質問

Q1: EKS MCPサーバーを使って、複数のAWSアカウントやリージョンのクラスターを管理できますか?

はい、異なるAWSプロファイルやリージョンを使用するようにサーバーを設定できます。各サーバーインスタンスは、指定された資格情報/環境変数の権限とコンテキストで動作します。

Q2: サーバーは、クラスターの削除やIAM権限の変更といった機密操作をどのように扱いますか?

デフォルトでは、操作には明示的な呼び出しとユーザーの承認が必要です(自動承認が有効でない限り)。機密操作は制限されるか、追加のパラメータを必要とする場合があります。安全のために読み取り専用モードも利用可能です。

Q3: AWS資格情報が期限切れになるか、権限が不足している場合はどうなりますか?

サーバーは権限エラーをクライアントに通知します。中断なく運用するためには、資格情報が有効であり、IAMロールまたはユーザーがすべての必要なEKS、Kubernetes、基盤となるAWS APIの権限を持っていることを確認してください。

Q4: 環境ごとに複数のEKS MCPサーバーインスタンスを実行できますか?

もちろんです。各サーバーは、異なるAWS環境(開発、ステージング、本番)ごとに別々に構成できます。異なるプロファイル/リージョンを使用します。

Q5: サーバーはカスタムKubernetesリソース定義(CRD)をサポートしていますか?

はい、有効なマニフェストが提供される限り、サーバーは関連するツールエンドポイントを使用してカスタムK8sリソースを適用、更新、または削除できます。