Amazon EKS MCP Server Tools 참조

Amazon EKS MCP Server Tools 참조

서버는 다음 MCP 도구를 노출합니다.

참고

Amazon EKS MCP Server는 Amazon EKS의 프리뷰 릴리스이며 변경될 수 있습니다.

읽기 전용 도구 (Read-only tools)

이 섹션은 EKS MCP Server에서 사용할 수 있는 읽기 전용 도구를 설명합니다. 모든 읽기 전용 Kubernetes API 작업은 다음 둘 다에 접근할 수 있어요.

  • 프라이빗 클러스터(Cluster private endpoint 참고)
  • 퍼블릭 클러스터

search_eks_documentation

최신 정보와 지침을 위해 EKS 문서를 검색합니다. 이 도구는 에이전트가 모르는 새 기능과 최근 개선 사항을 포함한 최신 EKS 문서에 대한 접근을 제공합니다.

매개변수:

  • query (필수): EKS 문서, 기능, 모범 사례와 관련된 특정 질문 또는 검색어.
  • limit (선택): 반환할 문서 결과 최대 수 (1-10). 기본값: 5.

search_eks_troubleshooting_guide

쿼리를 기반으로 EKS Troubleshooting Guide에서 문제 해결 정보를 검색합니다. 일반적인 문제를 식별하고 단계별 해결책을 제공하는 데 도움이 됩니다.

매개변수:

  • query (필수): EKS 문제 해결과 관련된 특정 질문 또는 문제 설명.

describe_eks_resource

구성, 상태, 메타데이터를 포함한 특정 EKS 클러스터 리소스에 대한 상세 정보를 검색합니다.

매개변수:

  • cluster_name (필수): EKS 클러스터 이름(클러스터 범위 리소스에 필요).
  • resource_type (필수): 설명할 EKS 리소스 유형. 유효 값:
    • accessentry (cluster_name 및 resource_name을 principalArn으로 필요)
    • addon (cluster_name 및 resource_name을 애드온 이름으로 필요)
    • cluster (cluster_name 필요), nodegroup (cluster_name 및 resource_name을 노드 그룹 이름으로 필요)
  • resource_name (선택): 설명할 특정 리소스의 이름(대부분의 리소스 유형에 필요).

list_eks_resources

특정 유형의 EKS 리소스를 나열하며, 접근 가능한 지정 유형의 모든 리소스 요약을 반환합니다.

매개변수:

  • resource_type (필수): 나열할 EKS 리소스 유형. 유효 값:
    • accessentry (cluster_name 필요)
    • addon (cluster_name 필요)
    • cluster (추가 매개변수 불필요)
    • nodegroup (cluster_name 필요)
  • cluster_name (선택): EKS 클러스터 이름(클러스터 범위 리소스에 필요).

get_eks_insights

EKS 클러스터 인사이트와 최적화 권장 사항을 검색합니다. AWS 모범 사례와 클러스터 분석에 기반한 보안, 성능, 비용 최적화를 위한 실행 가능한 인사이트를 제공합니다.

매개변수:

  • cluster_name (필수): EKS 클러스터 이름.
  • category (선택): 인사이트를 필터링할 선택적 범주(예: "MISCONFIGURATION" 또는 "UPGRADE_READINESS").
  • insight_id (선택): 상세 정보를 얻을 특정 인사이트의 선택적 ID.
  • next_token (선택): 다음 결과 세트를 얻기 위한 선택적 페이지네이션 토큰.

get_eks_vpc_config

서브넷, 라우트 테이블, 네트워크 연결을 포함한 EKS 클러스터의 VPC 구성을 검색합니다.

매개변수:

  • cluster_name (필수): VPC 구성을 얻을 EKS 클러스터 이름.
  • vpc_id (선택): 쿼리할 특정 VPC의 ID(선택, 지정하지 않으면 클러스터 VPC 사용).

get_k8s_events

문제 해결과 모니터링을 위해 특정 리소스와 관련된 Kubernetes 이벤트를 검색합니다.

매개변수:

  • cluster_name (필수): 리소스가 있는 EKS 클러스터 이름.
  • kind (필수): 관련 객체의 종류(예: "Pod", "Deployment", "Service"). 리소스 종류와 정확히 일치해야 합니다.
  • name (필수): 이벤트를 얻을 관련 객체의 이름.
  • namespace (선택): 관련 객체의 네임스페이스. 네임스페이스가 있는 리소스(Pod, Deployments 같은)에 필요. 클러스터 범위 리소스(Nodes, PersistentVolumes 같은)에는 불필요.

get_pod_logs

필터링 옵션으로 EKS 클러스터의 Pod에서 로그를 검색합니다.

매개변수:

  • cluster_name (필수): Pod가 실행 중인 EKS 클러스터 이름.
  • namespace (필수): Pod가 있는 Kubernetes 네임스페이스.
  • pod_name (필수): 로그를 검색할 Pod 이름.
  • container_name (선택): 로그를 얻을 특정 컨테이너 이름. Pod에 여러 컨테이너가 있을 때만 필요.
  • limit_bytes (선택): 반환할 최대 바이트 수. 기본값: 10KB (10240 bytes).
  • previous (선택): 이전에 종료된 컨테이너 로그 반환(기본 false). 재시작 중인 Pod의 로그를 얻는 데 유용.
  • since_seconds (선택): 이보다 많은 초 전의 로그만 반환. 전체 기록을 검색하지 않고 최근 로그를 얻는 데 유용.
  • tail_lines (선택): 로그 끝에서 반환할 줄 수. 기본값: 100.

list_api_versions

지정된 Kubernetes 클러스터의 모든 사용 가능한 API 버전을 나열합니다.

매개변수:

  • cluster_name (필수): EKS 클러스터 이름.

list_k8s_resources

EKS 클러스터에서 특정 종류의 Kubernetes 리소스를 나열합니다.

매개변수:

  • cluster_name (필수): 리소스가 있는 EKS 클러스터 이름.
  • kind (필수): 나열할 Kubernetes 리소스의 종류(예: 'Pod', 'Service', 'Deployment'). 사용 가능한 리소스 종류는 list_api_versions 도구로 찾으세요.
  • api_version (필수): Kubernetes 리소스의 API 버전(예: 'v1', 'apps/v1', 'networking.k8s.io/v1'). 사용 가능한 API 버전은 list_api_versions 도구로 찾으세요.
  • field_selector (선택): 리소스를 필터링할 필드 선택기(예: 'metadata.name=my-pod,status.phase=Running'). kubectl의 --field-selector 플래그와 같은 구문을 사용합니다.
  • label_selector (선택): 리소스를 필터링할 라벨 선택기(예: 'app=nginx,tier=frontend'). kubectl의 --selector 플래그와 같은 구문을 사용합니다.
  • namespace (선택): 나열할 Kubernetes 리소스의 네임스페이스. 제공하지 않으면 모든 네임스페이스에 걸쳐 리소스가 나열됩니다(네임스페이스가 있는 리소스의 경우).

read_k8s_resource

EKS 클러스터에서 특정 Kubernetes 리소스에 대한 상세 정보를 검색합니다.

매개변수:

  • api_version (필수): Kubernetes 리소스의 API 버전(예: "v1", "apps/v1", "networking.k8s.io/v1").
  • cluster_name (필수): 리소스가 있는 EKS 클러스터 이름.
  • kind (필수): Kubernetes 리소스의 종류(예: "Pod", "Service", "Deployment").
  • name (필수): 읽을 Kubernetes 리소스의 이름.
  • namespace (선택): Kubernetes 리소스의 네임스페이스. 네임스페이스가 있는 리소스에 필요. 클러스터 범위 리소스(Nodes, PersistentVolumes 같은)에는 불필요.

generate_app_manifest

컨테이너화된 애플리케이션을 위한 표준화된 Kubernetes 배포 및 서비스 매니페스트를 생성합니다.

매개변수:

  • app_name (필수): 애플리케이션 이름. 배포·서비스 이름과 라벨에 사용됩니다.
  • image_uri (필수): 태그가 있는 전체 ECR 이미지 URI(예: 123456789012.dkr.ecr.region.amazonaws.com/repo:tag). 전체 저장소 경로와 태그를 포함해야 합니다.
  • load_balancer_scheme (선택): AWS 로드 밸런서 체계. 유효 값:
    • "internal" (프라이빗 VPC 전용)
    • "internet-facing" (퍼블릭 접근)
    • 기본값: "internal".
  • cpu (선택): 각 컨테이너의 CPU 요청(예: "100m"은 0.1 CPU 코어, "500m"은 절반 코어). 기본값: "100m".
  • memory (선택): 각 컨테이너의 메모리 요청(예: "128Mi"는 128 MiB, "1Gi"는 1 GiB). 기본값: "128Mi"
  • namespace (선택): 애플리케이션을 배포할 Kubernetes 네임스페이스. 기본값: "default".
  • port (선택): 애플리케이션이 수신하는 컨테이너 포트. 기본값: 80
  • replicas (선택): 배포할 레플리카 수. 기본값: 2

get_cloudwatch_logs

입력 매개변수에 따른 필터링으로 CloudWatch 로그를 쿼리하고 EKS 클러스터 관측성에 사용되는 표준 로그 그룹을 지원합니다.

매개변수:

  • cluster_name (필수): 리소스가 있는 EKS 클러스터 이름. CloudWatch 로그 그룹 이름을 구성하는 데 사용됩니다.
  • resource_type (필수): 로그를 검색할 리소스 유형. 유효 값: "pod", "node", "container", "cluster". 이것이 로그 필터링 방식을 결정합니다.
  • log_type (필수): 쿼리할 로그 유형. 유효 값:
    • "application": 컨테이너/애플리케이션 로그
    • "host": 노드 수준 시스템 로그
    • "performance": 성능 메트릭 로그
    • "control-plane": EKS 컨트롤 플레인 로그
    • "your-log-group-name": 사용자 정의 CloudWatch 로그 그룹 이름 직접 제공.
  • resource_name (선택): 로그 메시지에서 검색할 리소스 이름(예: pod name, node name, container name). 특정 리소스의 로그를 필터링하는 데 사용됩니다.
  • minutes (선택): 로그를 되돌아볼 분 수. 기본값: 15. start_time이 제공되면 무시됩니다. 최근 문제에는 더 작은 값, 이력 분석에는 더 큰 값을 사용하세요.
  • start_time (선택): ISO 형식 시작 시간(예: "2023-01-01T00:00:00Z"). 제공되면 minutes 매개변수를 재정의합니다.
  • end_time (선택): ISO 형식 종료 시간(예: "2023-01-01T01:00:00Z"). 제공하지 않으면 현재 시간을 기본값으로 합니다.
  • fields (선택): 쿼리 결과에 포함할 사용자 정의 필드(기본값 "@timestamp, @message"). CloudWatch Logs Insights 필드 구문 사용.
  • filter_pattern (선택): 적용할 추가 CloudWatch Logs 필터 패턴. CloudWatch Logs Insights 구문 사용(예: "ERROR", "field=value").
  • limit (선택): 반환할 최대 로그 항목 수. 더 빠른 쿼리에는 더 낮은 값(10-50), 더 종합적인 결과에는 더 높은 값(100-1000)을 사용하세요. 높은 값은 성능에 영향을 줄 수 있습니다.

get_cloudwatch_metrics

EKS 클러스터 모니터링과 성능 분석을 위한 CloudWatch 메트릭과 데이터 포인트를 검색합니다. Container Insights 메트릭, 사용자 정의 메트릭, 구성 가능한 시간 기간과 차원을 처리합니다.

매개변수:

  • cluster_name (필수): 메트릭을 얻을 EKS 클러스터 이름.
  • dimensions (필수): CloudWatch 메트릭 쿼리에 사용할 차원을 JSON 문자열로. 리소스 유형과 메트릭에 적절한 차원을 포함해야 합니다(예: '{"ClusterName": "my-cluster", "PodName": "my-pod", "Namespace": "default"}').
  • metric_name (필수): 검색할 메트릭 이름. 일반적인 예:
    • cpu_usage_total: 총 CPU 사용량
    • memory_rss: Resident Set Size 메모리 사용량
    • network_rx_bytes: 수신 네트워크 바이트
    • network_tx_bytes: 송신 네트워크 바이트
  • namespace (필수): 메트릭이 저장된 CloudWatch 네임스페이스. 일반적인 값:
    • "ContainerInsights": 컨테이너 메트릭용
    • "AWS/EC2": EC2 인스턴스 메트릭용
    • "AWS/EKS": EKS 컨트롤 플레인 메트릭용
  • minutes (선택): 메트릭을 되돌아볼 분 수. 기본값: 15. start_time이 제공되면 무시됩니다.
  • start_time (선택): ISO 형식 시작 시간(예: "2023-01-01T00:00:00Z"). 제공되면 minutes 매개변수를 재정의합니다.
  • end_time (선택): ISO 형식 종료 시간(예: "2023-01-01T01:00:00Z"). 제공하지 않으면 현재 시간을 기본값으로 합니다.
  • limit (선택): 반환할 최대 데이터 포인트 수. 높은 값(100-1000)은 더 세밀한 데이터를 제공하지만 성능에 영향을 줄 수 있습니다. 기본값: 50.
  • period (선택): 메트릭 데이터 포인트의 기간(초). 기본값: 60 (1분). 낮은 값(1-60)은 더 높은 해상도를 제공하지만 가용성이 낮을 수 있습니다.
  • stat (선택): 메트릭 집계에 사용할 통계. 기본값: "Average". 유효 값:
    • Average: 기간 동안의 평균값
    • Sum: 기간 동안의 총값
    • Maximum: 기간 동안의 최고값
    • Minimum: 기간 동안의 최저값
    • SampleCount: 기간 동안의 샘플 수.

get_eks_metrics_guidance

EKS 클러스터의 특정 리소스 유형에 대한 CloudWatch 메트릭 지침을 얻습니다. 에이전트가 get_cloudwatch_metrics 도구와 함께 사용할 올바른 차원을 결정할 때 유용합니다.

매개변수:

  • resource_type (필수): 메트릭을 얻을 리소스 유형 (cluster, node, pod, namespace, service).

get_policies_for_role

assume role 정책, 관리형 정책, 인라인 정책을 포함해 지정된 IAM 역할에 연결된 모든 정책을 검색합니다.

매개변수:

  • role_name (필수): 정책을 얻을 IAM 역할 이름. 역할은 AWS 계정에 존재해야 합니다.

전체 접근 (쓰기) 도구 (Full access (write) tools)

이 섹션은 EKS MCP Server에서 사용할 수 있는 전체 접근(쓰기) 도구를 설명합니다. (현재 기준으로) 모든 쓰기 Kubernetes API 작업은 다음만 접근할 수 있어요.

  • 퍼블릭 클러스터 (endpointPublicAccess=true)

manage_k8s_resource

쓰기 작업(create, update, patch, delete)으로 단일 Kubernetes 리소스를 관리합니다.

매개변수:

  • operation (필수): 리소스에 수행할 작업. 유효 값:
    • create: 새 리소스 생성
    • replace: 기존 리소스 교체
    • patch: 기존 리소스의 특정 필드 업데이트
    • delete: 기존 리소스 삭제
    • 참고: 리소스 읽기에는 read_k8s_resource, 여러 리소스 나열에는 list_k8s_resources를 사용하세요.
  • cluster_name (필수): 리소스가 있거나 생성될 EKS 클러스터 이름.
  • kind (필수): Kubernetes 리소스의 종류(예: "Pod", "Service", "Deployment").
  • api_version (필수): Kubernetes 리소스의 API 버전(예: "v1", "apps/v1", "networking.k8s.io/v1").
  • body (선택): JSON 문자열인 리소스 정의. create, replace, patch 작업에 필요합니다. create와 replace에는 완전한 리소스 정의여야 하고, patch에는 업데이트할 필드만 포함해야 합니다.
  • name (선택): Kubernetes 리소스 이름. create를 제외한 모든 작업에 필요(create에서는 body에 지정할 수 있음).
  • namespace (선택): Kubernetes 리소스의 네임스페이스. 네임스페이스가 있는 리소스에 필요. 클러스터 범위 리소스(Nodes, PersistentVolumes 같은)에는 불필요.

apply_yaml

Kubernetes YAML 매니페스트를 EKS 클러스터에 적용합니다.

매개변수:

  • cluster_name (필수): 리소스가 생성되거나 업데이트될 EKS 클러스터 이름.
  • namespace (필수): 리소스를 적용할 Kubernetes 네임스페이스. 네임스페이스를 지정하지 않은 네임스페이스 리소스에 사용됩니다.
  • yaml_content (필수): 클러스터에 적용할 YAML 내용. '---'로 구분된 여러 문서를 포함할 수 있습니다.
  • force (선택): 리소스가 이미 존재하면 업데이트할지 여부(kubectl apply와 유사). 새 리소스만 생성하려면 false로 설정.

manage_eks_stacks

템플릿 생성, 배포, 설명, 삭제 작업으로 EKS CloudFormation 스택과 EKS 클러스터 및 그 기본 인프라를 관리합니다. 클러스터 생성은 보통 완료하는 데 15~20분이 걸립니다. deploy와 delete 작업의 경우 스택이 이 도구로 생성되었어야 합니다(즉, CreatedBy=EksMcpServer로 태그 지정).

매개변수:

  • cluster_name (필수): EKS 클러스터 이름(generate, deploy, describe, delete 작업용). 이 이름은 CloudFormation 스택 이름을 파생하는 데 사용되며 클러스터 리소스에 내장됩니다.
  • operation (필수): 수행할 작업. 유효 값:
    • generate: CloudFormation 템플릿 생성
    • deploy: CloudFormation 스택 배포(template_content 필요)
    • describe: CloudFormation 스택 설명/읽기(읽기 전용)
    • delete: CloudFormation 스택 삭제
  • template_content (선택): CloudFormation 템플릿 내용(deploy 작업용). 완전한 YAML 또는 JSON 템플릿 내용이어야 합니다. '---'로 구분된 단일 리소스와 다중 문서 YAML 내용을 모두 지원합니다.

add_inline_policy

IAM 역할에 새 인라인 정책을 추가합니다.

매개변수:

  • permissions (필수): IAM 정책 문을 나타내는 JSON 문자열로 정책에 포함할 권한. 단일 JSON 문자열 또는 JSON 문자열 배열일 수 있습니다.
  • policy_name (필수): 만들 인라인 정책의 이름. 역할 내에서 고유해야 합니다.
  • role_name (필수): 정책을 추가할 IAM 역할 이름. 역할이 존재해야 합니다.

더 알아보기 (Learn more)

출처: 문서