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(선택): 애플리케이션이 수신하는 컨테이너 포트. 기본값: 80replicas(선택): 배포할 레플리카 수. 기본값: 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)
출처: 문서