Skip to main content
Glama
imankamyabi

DynamoDB MCP Server

by imankamyabi

DynamoDB MCP 서버

Amazon DynamoDB 리소스를 관리하기 위한 모델 컨텍스트 프로토콜 서버입니다 . 이 서버는 테이블 관리, 용량 관리 및 데이터 작업을 위한 도구를 제공합니다.

작가

이만 카미야비( ikmyb@icloud.com )

Related MCP server: Columbia MCP Server

특징

테이블 관리

  • 사용자 정의 가능한 구성으로 새로운 DynamoDB 테이블 만들기

  • 기존 테이블 나열

  • 자세한 표 정보를 얻으세요

  • 테이블 설정 구성

인덱스 관리

  • 글로벌 보조 인덱스(GSI) 생성 및 관리

  • GSI 용량 업데이트

  • 로컬 보조 인덱스(LSI) 생성

용량 관리

  • 프로비저닝된 읽기/쓰기 용량 단위 업데이트

  • 테이블 처리량 설정 관리

데이터 운영

  • 표에 항목 삽입 또는 바꾸기

  • 기본 키로 항목 검색

  • 특정 항목 속성 업데이트

  • 조건이 있는 쿼리 테이블

  • 필터로 테이블 스캔

참고 : 실수로 데이터가 손실되는 것을 방지하기 위해 삭제 작업은 지원되지 않습니다.

설정

  1. 종속성 설치:

지엑스피1

  1. AWS 자격 증명을 환경 변수로 구성합니다.

export AWS_ACCESS_KEY_ID="your_access_key" export AWS_SECRET_ACCESS_KEY="your_secret_key" export AWS_REGION="your_region"
  1. 서버를 빌드하세요:

npm run build
  1. 서버를 시작합니다:

npm start

도구

테이블 생성

지정된 구성으로 새로운 DynamoDB 테이블을 만듭니다.

매개변수:

  • tableName : 생성할 테이블의 이름

  • partitionKey : 파티션 키의 이름

  • partitionKeyType : 파티션 키 유형(S=문자열, N=숫자, B=바이너리)

  • sortKey : (선택 사항) 정렬 키의 이름

  • sortKeyType : (선택 사항) 정렬 키의 유형

  • readCapacity : 프로비저닝된 읽기 용량 단위

  • writeCapacity : 프로비저닝된 쓰기 용량 단위

예:

{ "tableName": "Users", "partitionKey": "userId", "partitionKeyType": "S", "readCapacity": 5, "writeCapacity": 5 }

리스트_테이블

계정의 모든 DynamoDB 테이블을 나열합니다.

매개변수:

  • limit : (선택 사항) 반환할 테이블의 최대 개수

  • exclusiveStartTableName : (선택 사항) 페이지 매김을 시작할 테이블의 이름

예:

{ "limit": 10 }

설명_테이블

DynamoDB 테이블에 대한 자세한 정보를 가져옵니다.

매개변수:

  • tableName : 설명할 테이블의 이름

예:

{ "tableName": "Users" }

create_gsi

테이블에 글로벌 보조 인덱스를 생성합니다.

매개변수:

  • tableName : 테이블의 이름

  • indexName : 새 인덱스의 이름

  • partitionKey : 인덱스의 파티션 키

  • partitionKeyType : 파티션 키 유형

  • sortKey : (선택 사항) 인덱스의 정렬 키

  • sortKeyType : (선택 사항) 정렬 키의 유형

  • projectionType : 프로젝션 유형(ALL, KEYS_ONLY, INCLUDE)

  • nonKeyAttributes : (선택 사항) 프로젝트에 대한 키가 아닌 속성

  • readCapacity : 프로비저닝된 읽기 용량 단위

  • writeCapacity : 프로비저닝된 쓰기 용량 단위

예:

{ "tableName": "Users", "indexName": "EmailIndex", "partitionKey": "email", "partitionKeyType": "S", "projectionType": "ALL", "readCapacity": 5, "writeCapacity": 5 }

업데이트_gsi

글로벌 보조 인덱스의 프로비저닝된 용량을 업데이트합니다.

매개변수:

  • tableName : 테이블의 이름

  • indexName : 업데이트할 인덱스의 이름

  • readCapacity : 새로운 읽기 용량 단위

  • writeCapacity : 새로운 쓰기 용량 단위

예:

{ "tableName": "Users", "indexName": "EmailIndex", "readCapacity": 10, "writeCapacity": 10 }

create_lsi

테이블에 로컬 보조 인덱스를 생성합니다(테이블 생성 중에 수행해야 함).

매개변수:

  • tableName : 테이블의 이름

  • indexName : 새 인덱스의 이름

  • partitionKey : 테이블의 파티션 키

  • partitionKeyType : 파티션 키 유형

  • sortKey : 인덱스의 정렬 키

  • sortKeyType : 정렬 키의 유형

  • projectionType : 프로젝션 유형(ALL, KEYS_ONLY, INCLUDE)

  • nonKeyAttributes : (선택 사항) 프로젝트에 대한 키가 아닌 속성

  • readCapacity : (선택 사항) 프로비저닝된 읽기 용량 단위

  • writeCapacity : (선택 사항) 프로비저닝된 쓰기 용량 단위

예:

{ "tableName": "Users", "indexName": "CreatedAtIndex", "partitionKey": "userId", "partitionKeyType": "S", "sortKey": "createdAt", "sortKeyType": "N", "projectionType": "ALL" }

업데이트_용량

테이블의 프로비저닝된 용량을 업데이트합니다.

매개변수:

  • tableName : 테이블의 이름

  • readCapacity : 새로운 읽기 용량 단위

  • writeCapacity : 새로운 쓰기 용량 단위

예:

{ "tableName": "Users", "readCapacity": 10, "writeCapacity": 10 }

put_item

표에 항목을 삽입하거나 바꿉니다.

매개변수:

  • tableName : 테이블의 이름

  • item : 테이블에 넣을 항목(JSON 객체로)

예:

{ "tableName": "Users", "item": { "userId": "123", "name": "John Doe", "email": "john@example.com" } }

get_item

기본 키를 사용하여 테이블에서 항목을 검색합니다.

매개변수:

  • tableName : 테이블의 이름

  • key : 검색할 항목의 기본 키

예:

{ "tableName": "Users", "key": { "userId": "123" } }

업데이트_항목

표의 항목의 특정 속성을 업데이트합니다.

매개변수:

  • tableName : 테이블의 이름

  • key : 업데이트할 항목의 기본 키

  • updateExpression : 업데이트 표현식

  • expressionAttributeNames : 속성 이름 매핑

  • expressionAttributeValues : 업데이트 표현식의 값

  • conditionExpression : (선택 사항) 업데이트 조건

  • returnValues : (선택 사항) 반환할 값

예:

{ "tableName": "Users", "key": { "userId": "123" }, "updateExpression": "SET #n = :name", "expressionAttributeNames": { "#n": "name" }, "expressionAttributeValues": { ":name": "Jane Doe" } }

쿼리_테이블

주요 조건과 선택적 필터를 사용하여 테이블을 쿼리합니다.

매개변수:

  • tableName : 테이블의 이름

  • keyConditionExpression : 키 조건 표현식

  • expressionAttributeValues : 키 조건 표현식에 대한 값

  • expressionAttributeNames : (선택 사항) 속성 이름 매핑

  • filterExpression : (선택 사항) 결과에 대한 필터 표현식

  • limit : (선택 사항) 반환할 최대 항목 수

예:

{ "tableName": "Users", "keyConditionExpression": "userId = :id", "expressionAttributeValues": { ":id": "123" } }

스캔_테이블

선택적 필터를 사용하여 전체 표를 검색합니다.

매개변수:

  • tableName : 테이블의 이름

  • filterExpression : (선택 사항) 필터 표현식

  • expressionAttributeValues : (선택 사항) 필터 표현식의 값

  • expressionAttributeNames : (선택 사항) 속성 이름 매핑

  • limit : (선택 사항) 반환할 최대 항목 수

예:

{ "tableName": "Users", "filterExpression": "age > :minAge", "expressionAttributeValues": { ":minAge": 21 } }

샘플 질문

DynamoDB MCP 서버를 사용할 때 Claude에게 물어볼 수 있는 몇 가지 질문의 예는 다음과 같습니다.

테이블 관리

  • "파티션 키 'productId'(문자열)와 정렬 키 'timestamp'(숫자)를 사용하여 'Products'라는 새 DynamoDB 테이블을 만듭니다."

  • "내 계정의 모든 DynamoDB 테이블 나열"

  • "사용자 테이블의 현재 구성은 무엇입니까?"

  • "Users 테이블의 이메일 필드에 글로벌 보조 인덱스를 추가합니다."

용량 관리

  • "사용자 테이블 용량을 읽기 단위 20개, 쓰기 단위 15개로 업데이트"

  • "사용자 테이블에서 EmailIndex GSI 용량을 확장하세요"

  • "주문 테이블에 대한 현재 프로비저닝 용량은 얼마입니까?"

데이터 운영

  • ID가 '123'이고, 이름이 'John Doe'이며, 이메일이 ' john@example.com '인 새 사용자를 삽입하세요.

  • "ID '123'을 가진 사용자를 가져오세요"

  • "사용자 '123'의 이메일 주소를 ' john.doe@example.com '으로 업데이트하세요."

  • "사용자 '123'이 한 모든 주문을 찾으세요"

  • "21세 이상의 모든 사용자를 나열하세요"

  • "EmailIndex를 쿼리하여 이메일 주소가 ' john@example.com '인 사용자를 찾으세요."

구성

AWS 자격 증명 설정

  1. AWS Management Console에서 AWS 액세스 키 ID, 비밀 액세스 키 및 지역을 얻습니다.

  2. 임시 자격 증명(예: IAM 역할)을 사용하는 경우 세션 토큰도 얻습니다.

  3. 이러한 자격 증명에 DynamoDB 작업에 대한 적절한 권한이 있는지 확인하세요.

Claude Desktop과 함께 사용

claude_desktop_config.json 에 다음을 추가하세요:

Docker(추천)

{ "mcpServers": { "dynamodb": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "AWS_ACCESS_KEY_ID", "-e", "AWS_SECRET_ACCESS_KEY", "-e", "AWS_REGION", "-e", "AWS_SESSION_TOKEN", "mcp/dynamodb-mcp-server" ], "env": { "AWS_ACCESS_KEY_ID": "your_access_key", "AWS_SECRET_ACCESS_KEY": "your_secret_key", "AWS_REGION": "your_region", "AWS_SESSION_TOKEN": "your_session_token" } } } }

건물

도커:

docker build -t mcp/dynamodb-mcp-server -f Dockerfile .

개발

자동 다시 로드를 사용하여 개발 모드에서 실행하려면:

npm run dev

특허

이 MCP 서버는 MIT 라이선스에 따라 라이선스가 부여됩니다. 즉, MIT 라이선스의 조건에 따라 소프트웨어를 자유롭게 사용, 수정 및 배포할 수 있습니다. 자세한 내용은 프로젝트 저장소의 LICENSE 파일을 참조하세요.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/imankamyabi/dynamodb-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server