LODY/정리

AWS / AWS MCP Server

AWS MCP Server

개요

항목내용
무엇인가AWS Labs가 공식 배포하는 Model Context Protocol 서버 모음. LLM 에이전트가 AWS 콘솔·CLI 대신 도구 호출로 AWS를 조작하도록 해주는 어댑터
어디 있나awslabs/mcp 레포에 도메인별 서버가 모놀리포로 정리되어 있음
왜 쓰나에이전트가 매번 aws CLI를 셸로 실행하는 대신, 타입이 명확한 도구·리소스로 AWS 기능을 호출하게 만들기 위함
인증호스트의 AWS 자격 증명을 그대로 사용. 별도 토큰 발급 없음

문제 정의

LLM 에이전트에게 "이 EKS 클러스터의 비용 추세 좀 봐줘"라고 시키면, 보통은 셸을 통해 aws ce get-cost-and-usage ...를 조립해 실행한다. 이 방식에는 두 가지 문제가 있다.

첫째, 자유 형식 셸 호출은 안전 경계가 없다. 에이전트가 잘못된 옵션을 만들거나 파괴적인 커맨드를 조립할 여지가 항상 존재한다. 둘째, 출력 파싱이 매번 다르다. CLI는 사람이 읽는 텍스트 또는 JSON 덤프를 그대로 던져 주므로 에이전트가 매번 형식을 추론해야 한다.

MCP 서버는 이 두 문제를 도구 정의를 통한 명시적 인터페이스로 해결한다. 사용 가능한 동작이 스키마로 노출되므로 에이전트는 임의 셸 명령이 아니라 정해진 도구만 호출한다.

AWS MCP Server의 구성

단일 서버가 아니라 도메인별로 쪼개진 서버 묶음이다. 호스트(예: Claude Desktop, Cursor, Claude Code)는 필요한 것만 골라 등록한다. 대표적인 카테고리는 다음과 같다.

카테고리용도
coreAWS 일반 조회, 다른 MCP 서버 디스커버리
aws-documentation최신 AWS 공식 문서 검색·요약
cost-explorer비용·사용량 조회와 추세 분석
cdk / terraformIaC 코드 생성과 베스트 프랙티스 적용
eks / ecs / lambda워크로드별 운영 조작
bedrock-kbKnowledge Base 검색

각 서버는 독립 패키지로 배포되며 uvxnpx로 즉시 실행할 수 있다.

동작 원리

핵심은 MCP 서버가 호스트의 자격 증명 환경에서 실행된다는 점이다. 자격 증명은 호스트의 ~/.aws/credentials나 환경 변수(AWS_PROFILE, AWS_REGION)를 그대로 읽는다. 별도 OAuth 흐름이 없는 대신, 서버를 실행한 사용자의 IAM 권한이 곧 에이전트의 권한 상한이 된다.

트레이드오프

자유 형식 CLI 호출과 비교했을 때 얻는 것과 잃는 것이 분명하다.

얻는 것. 도구 스키마가 명시적이라 에이전트가 헛다리 짚을 확률이 낮다. 출력도 구조화되어 있어 후속 추론이 쉽다. 읽기 전용 도구와 쓰기 도구를 분리해 노출할 수 있어 안전 경계를 설계하기 쉽다.

잃는 것. AWS의 모든 API를 다 도구로 노출하는 것은 아니다. 새 서비스나 신규 파라미터는 서버 업데이트를 기다려야 한다. 그래서 실무에서는 공식 MCP 서버 + 비상시 셸 호출의 하이브리드 구성을 자주 쓴다.

실무 적용 시 주의점

  • 권한 최소화. 에이전트에 붙이는 IAM 자격 증명은 별도 프로필로 분리하고, 필요한 최소 권한만 부여한다. 운영 권한과 같은 자격을 쓰지 않는다.
  • 읽기/쓰기 분리. 가능한 서버는 read-only 모드 옵션을 제공한다. 탐색 단계에서는 read-only로 두고, 변경이 필요한 단계에서만 쓰기 권한을 가진 서버를 활성화한다.
  • 리전 기본값. AWS_REGION을 명시하지 않으면 의도하지 않은 리전에서 동작할 수 있다. 호스트 설정에 환경 변수로 박아 둔다.
  • 비용 가시성. Cost Explorer MCP 서버를 같이 띄워 두면 에이전트가 무거운 쿼리를 던졌을 때 비용을 바로 확인할 수 있다.

더 깊이 보기

  • awslabs/mcp 레포: 각 서버의 도구 목록과 등록 예시
  • MCP 스펙: 도구·리소스·프롬프트의 차이와 호스트 책임 범위
  • Bedrock AgentCore와의 비교: AWS 내부에서 도는 매니지드 에이전트 런타임과 로컬 MCP 서버의 역할 분담