AWS 리소스 MCP 서버
개요
boto3를 통해 모든 AWS 리소스를 쿼리하기 위해 생성된 Python 코드를 실행하는 MCP(Model Context Protocol) 서버 구현입니다.
책임은 사용자에게 있습니다 . ReadyOnly로만 작업을 제한하지 않았습니다. 신중한 운영 담당자가 이 도구를 사용하여 관리 작업을 수행하는 데 도움을 받을 수 있도록 하기 위함입니다. AWS 사용자 역할에 따라 수행 가능한 권한이 결정됩니다.
데모: Dynamodb 권한 오류 수정
https://github.com/user-attachments/assets/de88688d-d7a0-45e1-94eb-3f5d71e9a7c7
Related MCP server: MCP Python Toolbox
왜 또 다른 AWS MCP 서버가 필요한가요?
개발자 액세스로 AWS Chatbot을 사용해 봤습니다. 무료 티어는 리소스당 월 25개 쿼리로 제한됩니다. 다음 티어는 월 19달러로, 제가 사용하지 않는 기능의 90%를 포함합니다. 결과는 JSON 형식이고 제약이 많습니다.
aws-mcp를 사용해보려고 했지만 몇 가지 문제가 발생했습니다.
설정 번거로움 : git 저장소를 복제하고 로컬 설정을 처리해야 했습니다.
안정성 문제 : 내 Mac에서는 충분히 안정적이지 않았습니다.
Node.js 스택 : Python 개발자로서 Node.js 코드베이스에 효과적으로 기여할 수 없었습니다.
그래서 저는 다음과 같은 새로운 접근 방식을 만들었습니다.
Docker 이미지에서 직접 실행 - git 복제가 필요 없음
안정성 향상을 위해 Python과 boto3를 사용합니다.
Python 사용자가 쉽게 기여할 수 있도록 합니다.
코드 실행을 위한 적절한 샌드박싱이 포함되어 있습니다.
모든 것을 컨테이너화하고 깨끗하게 유지합니다.
모델 컨텍스트 프로토콜과 그 작동 방식에 대한 자세한 내용은 Anthropic의 MCP 설명서를 참조하세요.
구성 요소
자원
서버는 다음 리소스를 노출합니다.
aws://query_resources: boto3 쿼리를 통해 AWS 리소스에 대한 액세스를 제공하는 동적 리소스
예제 쿼리
실행할 수 있는 몇 가지 쿼리 예는 다음과 같습니다.
S3 버킷 나열:
지엑스피1
최신 CodePipeline 배포를 받으세요:
참고 : 모든 코드 조각은 클라이언트에 반환될 result 변수를 설정해야 합니다. result 변수는 AWS 관련 객체 및 날짜/시간 값을 적절히 처리하여 JSON 형식으로 자동 변환됩니다.
도구
이 서버는 AWS 쿼리를 실행하기 위한 도구를 제공합니다.
aws_resources_query_or_modifyAWS 리소스를 쿼리하거나 수정하기 위해 boto3 코드 조각을 실행합니다.
입력:
code_snippet(문자열): boto3를 사용하여 AWS 리소스를 쿼리하는 Python 코드코드는 쿼리 출력으로
result변수를 설정해야 합니다.
허용된 수입품:
보토3
연산자
제이슨
날짜시간
피츠
날짜 유틸리티
답장
시간
사용 가능한 내장 함수:
기본 유형: dict, list, tuple, set, str, int, float, bool
연산: len, max, min, sorted, filter, map, sum, any, all
객체 처리: hasattr, getattr, isinstance
기타: 인쇄, 수입
구현 세부 사항
서버에는 여러 가지 안전 기능이 포함되어 있습니다.
가져오기 및 코드 구조를 검증하기 위한 AST 기반 코드 분석
제한된 내장 기능이 있는 제한된 실행 환경
AWS 특정 객체를 적절히 처리하여 결과의 JSON 직렬화
적절한 오류 처리 및 보고
설정
필수 조건
AWS 리소스를 쿼리하려면 적절한 권한이 있는 AWS 자격 증명이 필요합니다. 다음 방법으로 이러한 자격 증명을 얻을 수 있습니다.
AWS 계정에서 IAM 사용자 생성
프로그래밍 방식 액세스를 위한 액세스 키 생성
쿼리하려는 AWS 서비스에 대한 필요한 권한이 IAM 사용자에게 있는지 확인
다음 환경 변수가 필요합니다.
AWS_ACCESS_KEY_ID: AWS 액세스 키AWS_SECRET_ACCESS_KEY: AWS 비밀 키AWS_SESSION_TOKEN: (선택 사항) 임시 자격 증명을 사용하는 경우 AWS 세션 토큰AWS_DEFAULT_REGION: AWS 지역(설정하지 않으면 기본값은 'us-east-1')
~/.aws/credentials 파일에 저장된 프로필을 사용할 수도 있습니다. 이렇게 하려면 AWS_PROFILE 환경 변수를 프로필 이름으로 설정하세요.
참고: AWS 자격 증명을 안전하게 보관하고 버전 제어에 커밋하지 마세요.
Smithery를 통해 설치
Smithery를 통해 Claude Desktop용 AWS 리소스 MCP 서버를 자동으로 설치하려면:
도커 설치
이미지를 로컬에서 빌드하거나 Docker Hub에서 가져올 수 있습니다. 이미지는 Linux 플랫폼용으로 빌드되었습니다.
지원 플랫폼
리눅스/amd64
리눅스/arm64
리눅스/arm/v7
옵션 1: Docker Hub에서 가져오기
옵션 2: 로컬로 빌드
컨테이너를 실행합니다.
또는 저장된 자격 증명과 프로필을 사용합니다.
크로스 플랫폼 퍼블리싱
여러 플랫폼에 Docker 이미지를 게시하려면 docker buildx 명령을 사용할 수 있습니다. 다음 단계를 따르세요.
새로운 빌더 인스턴스를 만듭니다 (아직 만들지 않았다면):
docker buildx create --use여러 플랫폼에 대한 이미지를 빌드하고 푸시합니다 .
docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t buryhuang/mcp-server-aws-resources:latest --push .지정된 플랫폼에서 이미지를 사용할 수 있는지 확인하세요 .
docker buildx imagetools inspect buryhuang/mcp-server-aws-resources:latest